Function at 0x436170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x9c0
mov dword [esp + 0x74], edx
mov ebx, ecx
mov eax, dword [ecx + 0x80]
mov esi, dword [ecx + 0xc8]
mov dword [esp + 0xa0], eax
sub eax, esi
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 0x84]
mov edi, dword [ecx + 0xcc]
mov dword [esp + 0x14], edx
sbb edx, edi
mov eax, edi
shld eax, esi, 2
mov ecx, edi
shr ecx, 0x1e
cmp eax, 3
sbb ecx, 0
mov dword [esp + 0x90], esi
jb 0x4361eb
mov ecx, dword [esp + 0x90]
mov eax, ecx
and eax, 0x3fffffff
add ecx, ecx
sar ecx, 1
and ecx, 0xc0000000
lea esi, [ecx + eax]
add esi, 0x80000000
xor eax, eax
cmp dword [ebx + 0x1920], 0
jne 0x43aa1d
mov dword [esp + 0x50], esi
cmp dword [esp + 0x74], 0
je 0x43620f
mov dword [ebx + 0x1920], 1
movzx ecx, byte [ebx + 0xc]
mov dword [esp + 0xc], ebx
mov ebx, 1
shl ebx, cl
xor eax, eax
cmp ebx, dword [esp + 0x20]
mov ecx, 0
sbb ecx, edx
jb 0x43aa1d
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
lea eax, [edx + 0x70]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x8c]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0xa4]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 4]
cmp eax, 1
jne 0x4362a2
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x18f4], 0
mov esi, dword [esp + 0x20]
jne 0x4362af
push 0x80000
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
push ebx
call fcn.00554f90
add esp, 8
mov dword [esi + 0x18f4], eax
push 0x20000
push ebx
call fcn.00554f90
mov ecx, dword [ebp + 0xc]
add esp, 8
mov dword [esi + 0x18f8], eax
mov eax, dword [esi + 4]
cmp eax, 1
mov esi, dword [esp + 0x20]
ja 0x4363a0
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x122]
mov dword [esp + 0x330], eax
cmp dword [esp + 0x74], 0
jne 0x4362e6
xor eax, eax
mov edx, dword [esp + 0xa0]
xor edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x14]
xor ebx, edi
or ebx, edx
je 0x43654b
add esi, esi
add esi, 0x1f7
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x12c]
cmp dword [ebx + 0x128], esi
jae 0x43632e
push eax
mov edi, dword [esp + 0x50]
push edi
call fcn.00554fb0
add esp, 8
mov dword [ebx + 0x12c], 0
push esi
push edi
call fcn.00554f90
add esp, 8
mov dword [ebx + 0x12c], eax
mov dword [ebx + 0x128], esi
movzx ecx, byte [ebx + 0x120]
mov byte [eax], cl
movzx ecx, byte [ebx + 0x121]
mov dword [esp + 0x90], eax
mov byte [eax + 1], cl
mov eax, dword [ebx + 4]
test eax, eax
mov ecx, 0x8000
mov edx, 0x20000
cmove edx, ecx
mov esi, 0x100
mov edi, dword [esp + 0x20]
nop word cs:[eax + eax]
mov ecx, esi
add esi, esi
cmp ecx, edx
jae 0x43637c
cmp ecx, edi
jb 0x436370
mov edx, ecx
and edx, 0xaaa00
or eax, edx
cmovne esi, ecx
cmp esi, 0x400
ja 0x4363f0
mov ebx, dword [esp + 0xc]
lea eax, [ebx + 0x568]
jmp 0x43643e
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xb0]
mov ecx, esi
shr ecx, 1
add ecx, eax
inc ecx
cmp ecx, dword [edx + 0xa8]
jbe 0x436596
mov eax, dword [esp + 0x20]
shr eax, 2
add eax, ecx
add eax, 0x10
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xa8], eax
je 0x436552
shl eax, 4
push eax
push dword [esp + 0x50]
call fcn.00554f90
add esp, 8
mov edi, eax
jmp 0x436554
mov ebx, dword [esp + 0xc]
cmp esi, dword [ebx + 0x156c]
jbe 0x436438
mov dword [ebx + 0x156c], esi
push dword [ebx + 0x1568]
mov edi, dword [esp + 0x50]
push edi
call fcn.00554fb0
add esp, 8
mov dword [ebx + 0x1568], 0
lea eax, [esi*4]
push eax
push edi
call fcn.00554f90
add esp, 8
mov dword [ebx + 0x1568], eax
jmp 0x43643e
mov eax, dword [ebx + 0x1568]
lea ecx, [esi*4]
push ecx
push 0
mov dword [esp + 0xa8], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
add ecx, eax
cmp dword [ebx + 4], 0
je 0x4364aa
lea eax, [esp + 0x330]
mov edi, dword [esp + 0x90]
push edi
push eax
push esi
push dword [esp + 0xac]
push dword [ebx + 0x18f8]
push dword [ebx + 0x18f4]
push dword [esp + 0x8c]
push dword [esp + 0x3c]
push ecx
push dword [esp + 0x70]
call fcn.00567b00
add esp, 0x28
jmp 0x43650b
lea eax, [ebx + 0x1570]
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x15f0]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x18f0]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x16f0]
mov edi, dword [esp + 0x90]
push edi
lea edx, [esp + 0x334]
push edx
push eax
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x24]
push esi
push dword [esp + 0xbc]
push dword [esp + 0x94]
push dword [esp + 0x44]
push ecx
push dword [esp + 0x78]
call fcn.00575660
add esp, 0x30
mov ecx, dword [esp + 0x330]
mov eax, ecx
shr eax, 3
movzx edx, byte [edi + eax]
mov word [ebx + 0x120], dx
and cl, 7
mov byte [ebx + 0x122], cl
mov ecx, dword [ebx + 0x80]
mov edx, dword [ebx + 0x84]
mov dword [ebx + 0xcc], edx
mov dword [ebx + 0xc8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x43aa18
xor edi, edi
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xac]
test eax, eax
je 0x43658c
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebx + 0xb0]
shl ecx, 4
push ecx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push dword [ebx + 0xac]
push dword [esp + 0x50]
call fcn.00554fb0
add esp, 8
mov eax, dword [esp + 0xc]
mov dword [eax + 0xac], edi
cmp dword [esp + 0x74], 0
setne al
mov edi, dword [esp + 0xc]
lea ecx, [edi + 0x130]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x50]
test ecx, ecx
sete dl
and dl, al
cmp dword [edi + 0x130], 0
je 0x4365e0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x150], 0
jne 0x4376d2
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x13c]
jmp 0x436aa8
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0xc]
lea edi, [eax + 0x20]
mov edx, dword [eax + 4]
cmp edx, 0xa
jl 0x436603
mov dword [edi], 0xa
mov edx, 0xa
jmp 0x4366e9
cmp edx, 4
jne 0x436625
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x14], 0x100000
jb 0x436627
mov dword [edi], 0x36
mov edx, 0x36
jmp 0x4366e9
jg 0x43662e
mov dword [edi], edx
jmp 0x4366e9
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
cmp ecx, 0x10
jg 0x436657
cmp edx, 9
mov eax, 0x2a
sbb eax, 0
cmp edx, 7
mov edx, 0x28
cmovae edx, eax
mov dword [edi], edx
jmp 0x4366e9
lea eax, [edx - 1]
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x14], 0x100000
jb 0x4366ad
cmp ecx, 0x13
jb 0x4366ad
mov esi, dword [esp + 0xc]
mov dword [esi + 0x20], 6
mov dword [esi + 0x28], eax
mov dword [esi + 0x24], 0xf
mov dword [esi + 0x2c], 5
cmp edx, 9
mov eax, 0xa
mov ecx, 0x10
cmovb ecx, eax
cmp edx, 7
mov eax, 4
cmovae eax, ecx
mov dword [esi + 0x30], eax
mov edx, 6
jmp 0x4366e9
mov esi, dword [esp + 0xc]
mov dword [esi + 0x20], 5
mov dword [esi + 0x28], eax
cmp edx, 9
mov eax, 0xa
mov ecx, 0x10
cmovb ecx, eax
xor eax, eax
cmp edx, 7
setb al
mov edx, 4
cmovae edx, ecx
xor eax, 0xf
mov dword [esi + 0x24], eax
mov dword [esi + 0x30], edx
mov edx, 5
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
cmp ecx, 0x19
jl 0x436719
cmp edx, 3
je 0x43670b
cmp edx, 6
je 0x436712
cmp edx, 0x36
jne 0x436719
mov edx, 0x37
jmp 0x436717
mov edx, 0x23
jmp 0x436717
mov edx, 0x41
mov dword [edi], edx
xor eax, eax
add edx, 0xfffffffe
cmp edx, 0x3f
ja case.0x43672c.7
mov esi, 0x40000
jmp dword [edx*4 + 0x86b1e0]
mov esi, 0x80000
jmp case.0x43672c.2
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x24]
mov ebx, 2
shl ebx, cl
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 0x28]
mov esi, 4
shl esi, cl
mov ecx, edx
shl esi, cl
add esi, ebx
jmp 0x4367c8
mov edx, 1
shl edx, cl
mov esi, dword [esp + 0x20]
cmp edx, esi
mov ecx, edx
cmova ecx, esi
cmp byte [esp + 0x14], 0
cmove ecx, edx
lea esi, [ecx*8 + 0x80000]
jmp 0x4367c8
mov esi, 0x4040000
jmp case.0x43672c.2
mov esi, 0x140000
jmp case.0x43672c.2
mov esi, sym.adb.exe_Ordinal_0
jmp case.0x43672c.2
mov esi, 0x4400000
jmp case.0x43672c.2
mov edx, dword [esp + 0xc]
movzx ecx, byte [edx + 0x24]
mov esi, 2
shl esi, cl
movzx edx, byte [edx + 0x28]
mov ebx, 4
shl ebx, cl
mov ecx, edx
shl ebx, cl
add esi, ebx
add esi, 0x4000000
test esi, esi
je case.0x43672c.7
push esi
push dword [esp + 0x50]
call fcn.00554f90
add esp, 8
mov edx, dword [esp + 0xc]
mov dword [edx + 0x130], eax
movdqu xmm0, xmmword [edi]
movdqu xmmword [edx + 0x13c], xmm0
mov ecx, dword [edi + 0x10]
mov dword [edx + 0x14c], ecx
mov edi, dword [edx + 0x13c]
lea ecx, [edi - 2]
cmp ecx, 0x3f
ja case.0x43680a.7
jmp dword [ecx*4 + 0x86b2e0]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x158], ecx
mov dword [edx + 0x15c], eax
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x164], ecx
mov dword [edx + 0x160], eax
mov ecx, dword [edx + 4]
xor eax, eax
cmp ecx, 7
setl al
add eax, 7
add cl, 0xfc
shl eax, cl
mov dword [edx + 0x15c], eax
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x1a0], ecx
mov dword [edx + 0x19c], eax
movdqu xmm0, xmmword [ecx]
movupd xmm1, xmmword [ecx + 0x10]
movdqu xmmword [edx + 0x178], xmm0
movupd xmmword [edx + 0x188], xmm1
mov eax, dword [ecx + 0x20]
mov dword [edx + 0x198], eax
mov dword [edx + 0x1a4], 1
mov dword [edx + 0x1a8], edx
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x170], ecx
mov ecx, dword [edx + 0x140]
mov edx, dword [edx + 0x144]
mov ebx, 0x20
sub ebx, ecx
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x160], ebx
mov ebx, 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x158], esi
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x15c], ebx
dec ebx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x164], ebx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x174], eax
lea eax, [eax + esi*2]
mov dword [ecx + 0x178], eax
mov dword [ecx + 0x168], edx
mov eax, dword [ecx + 0x14c]
mov dword [ecx + 0x16c], eax
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x17c], ecx
mov esi, dword [edx + 0x140]
mov dword [esp + 0xc0], esi
mov ecx, dword [edx + 0x144]
mov dword [esp + 0x80], ecx
mov ecx, 0x40
sub ecx, esi
mov dword [edx + 0x160], ecx
mov ch, byte [edx + 0x148]
shl ch, 3
mov cl, 0x40
sub cl, ch
mov esi, 0xffffffff
shr esi, cl
xor ebx, ebx
test cl, 0x20
mov edx, 0xffffffff
cmovne edx, esi
cmove ebx, esi
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x16c], ebx
mov ebx, dword [esp + 0xc]
mov esi, 1
mov ecx, dword [esp + 0xc0]
shl esi, cl
mov dword [ebx + 0x168], edx
mov edx, 1
mov dword [ebx + 0x158], esi
mov ecx, dword [esp + 0x80]
mov dword [ebx + 0x174], ecx
shl edx, cl
mov dword [ebx + 0x15c], edx
dec edx
mov dword [ebx + 0x170], edx
mov ecx, dword [ebx + 0x14c]
mov dword [ebx + 0x178], ecx
mov dword [ebx + 0x180], eax
lea eax, [eax + esi*2]
mov dword [ebx + 0x184], eax
jmp case.0x43680a.7
mov edx, dword [esp + 0xc]
mov dword [edx + 0x15c], eax
add eax, 0x80000
mov dword [edx + 0x164], eax
movzx ecx, byte [edx + 8]
mov eax, 0xffffffff
shl eax, cl
lea ecx, [eax + 1]
not eax
mov dword [edx + 0x158], eax
mov dword [edx + 0x160], ecx
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x560], ecx
mov dword [edx + 0x55c], eax
mov ecx, dword [edx + 4]
xor eax, eax
cmp ecx, 7
setl al
add eax, 7
add cl, 0xfc
shl eax, cl
mov dword [edx + 0x558], eax
jmp case.0x43680a.7
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x1c8], ecx
mov dword [edx + 0x1c4], eax
movdqu xmm0, xmmword [ecx]
movupd xmm1, xmmword [ecx + 0x10]
movdqu xmmword [edx + 0x1a0], xmm0
movupd xmmword [edx + 0x1b0], xmm1
mov eax, dword [ecx + 0x20]
mov dword [edx + 0x1c0], eax
mov dword [edx + 0x1cc], 1
mov dword [edx + 0x1d0], edx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x150], 0
movzx edx, byte [esp + 0x14]
add edi, 0xfffffffe
cmp edi, 0x3f
ja case.0x436ab4.7
jmp dword [edi*4 + 0x86b3e0]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x15c]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x801
setae al
xor dl, 1
or dl, al
jne 0x437626
test ecx, ecx
mov ecx, dword [esp + 0x50]
je 0x4376ac
mov edx, 0xbd1e35a7
mov eax, dword [esp + 0x90]
not eax
add eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x20]
and ecx, 3
mov dword [esp + 0x80], ecx
xor ebx, ebx
cmp eax, 3
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x10]
jb 0x436c04
mov eax, dword [esp + 0x20]
and eax, 0xfffffffc
mov dword [esp + 0xc0], eax
xor ebx, ebx
mov edi, 0xbd000000
mov eax, dword [esi + ebx]
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + ebx + 4]
imul esi, edi
mov ecx, eax
imul ecx, edx
mul edi
add edx, ecx
add edx, esi
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ebx + 1]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + ebx + 5]
imul ecx, edi
mov esi, eax
mul edi
mov eax, 0xbd1e35a7
imul esi, eax
add edx, esi
add edx, ecx
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ebx + 2]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + ebx + 6]
imul ecx, edi
mov esi, eax
mov edx, 0xbd1e35a7
imul esi, edx
mul edi
add edx, esi
mov esi, dword [esp + 0x10]
add edx, ecx
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov eax, dword [esi + ebx + 3]
mov ecx, eax
mov edx, 0xbd1e35a7
imul ecx, edx
mul edi
add edx, ecx
mov ecx, 0xbd000000
mov eax, dword [esi + ebx + 7]
imul eax, ecx
add edx, eax
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov edx, 0xbd1e35a7
add ebx, 4
cmp dword [esp + 0xc0], ebx
jne 0x436b34
cmp dword [esp + 0x80], 0
je case.0x436ab4.7
add ebx, dword [esp + 0x10]
xor esi, esi
mov edi, 0xbd000000
mov eax, dword [ebx + esi]
mov ecx, eax
imul ecx, edx
mul edi
add edx, ecx
mov ecx, 0xbd000000
mov eax, dword [ebx + esi + 4]
imul eax, ecx
add edx, eax
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], 0
mov edx, 0xbd1e35a7
inc esi
cmp dword [esp + 0x80], esi
jne 0x436c1d
jmp case.0x436ab4.7
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x15c]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x801
setae al
xor dl, 1
or dl, al
jne 0x437630
test ecx, ecx
mov ecx, dword [esp + 0x50]
je 0x4376ac
mov eax, dword [esp + 0x90]
not eax
xor edi, edi
add eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x10]
je 0x436d42
mov eax, dword [esp + 0x20]
and eax, 0xfffffffe
mov dword [esp + 0x80], eax
xor edi, edi
mov dword [esp + 0x14], ebx
mov eax, dword [esi + edi]
mov ecx, dword [esi + edi + 4]
mov edx, 0xbd000000
imul ecx, edx
mov edx, 0xbd000000
mov ebx, eax
mul edx
mov eax, 0xbd1e35a7
imul ebx, eax
add edx, ebx
mov ebx, dword [esp + 0x14]
add edx, ecx
shr edx, 0x10
mov dword [ebx + edx*4], 0
add edx, 8
movzx eax, dx
mov dword [ebx + eax*4], 0
mov eax, dword [esi + edi + 1]
mov ecx, eax
mov edx, 0xbd1e35a7
imul ecx, edx
mov edx, 0xbd000000
mul edx
add edx, ecx
mov eax, dword [esi + edi + 5]
mov ecx, 0xbd000000
imul eax, ecx
add edx, eax
shr edx, 0x10
mov dword [ebx + edx*4], 0
add edx, 8
movzx eax, dx
mov dword [ebx + eax*4], 0
add edi, 2
cmp dword [esp + 0x80], edi
jne 0x436cb7
test byte [esp + 0x20], 1
je case.0x436ab4.7
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
shr ecx, 0x10
mov dword [ebx + ecx*4], 0
add ecx, 8
movzx eax, cx
mov dword [ebx + eax*4], 0
jmp case.0x436ab4.7
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x15c]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1001
setae al
xor dl, 1
or dl, al
jne 0x43763a
test ecx, ecx
mov ecx, dword [esp + 0x50]
je 0x4376ac
xor edi, edi
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + edi]
mov eax, ecx
mov edx, 0xbd000000
mul edx
mov eax, 0xbd1e35a7
imul ecx, eax
add edx, ecx
mov eax, dword [ebx + edi + 4]
mov ecx, 0xbd000000
imul eax, ecx
add edx, eax
shr edx, 0xf
mov dword [esi + edx*4], 0
lea eax, [edx + 8]
and eax, 0x1ffff
mov dword [esi + eax*4], 0
lea eax, [edx + 0x10]
and eax, 0x1ffff
mov dword [esi + eax*4], 0
add edx, 0x18
and edx, 0x1ffff
mov dword [esi + edx*4], 0
inc edi
cmp dword [esp + 0x20], edi
jne 0x436dbf
jmp case.0x436ab4.7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x158]
mov eax, dword [eax + 0x174]
test dl, dl
mov esi, dword [esp + 0x20]
je 0x437641
mov edx, ecx
shr edx, 6
cmp edx, esi
jb 0x437641
test esi, esi
je case.0x436ab4.7
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x160]
mov edi, dword [esp + 0x90]
not edi
add edi, dword [esp + 0xa0]
mov edx, dword [esp + 0x20]
and edx, 3
mov dword [esp + 0x14], edx
xor esi, esi
cmp edi, 3
mov edx, dword [esp + 0x10]
jb 0x436ed7
mov ebx, dword [esp + 0x20]
and ebx, 0xfffffffc
xor esi, esi
imul edi, dword [edx + esi], 0x1e35a7bd
shr edi, cl
mov word [eax + edi*2], 0
imul edi, dword [edx + esi + 1], 0x1e35a7bd
shr edi, cl
mov word [eax + edi*2], 0
imul edi, dword [edx + esi + 2], 0x1e35a7bd
shr edi, cl
mov word [eax + edi*2], 0
imul edi, dword [edx + esi + 3], 0x1e35a7bd
shr edi, cl
mov word [eax + edi*2], 0
add esi, 4
cmp ebx, esi
jne 0x436e91
mov edx, dword [esp + 0x14]
test edx, edx
je case.0x436ab4.7
add esi, dword [esp + 0x10]
xor edi, edi
imul ebx, dword [esi + edi], 0x1e35a7bd
shr ebx, cl
mov word [eax + ebx*2], 0
inc edi
cmp edx, edi
jne 0x436ee9
jmp case.0x436ab4.7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x158]
mov esi, dword [ecx + 0x180]
test dl, dl
mov edx, dword [esp + 0x20]
je 0x437649
mov ecx, eax
shr ecx, 6
cmp ecx, edx
jb 0x437649
mov dword [esp + 0x14], esi
test edx, edx
je case.0x436ab4.7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x16c]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 0x160]
mov edi, dword [eax + 0x168]
mov eax, dword [esp + 0x90]
not eax
xor esi, esi
add eax, dword [esp + 0xa0]
je 0x43702b
mov edx, dword [esp + 0x20]
and edx, 0xfffffffe
mov dword [esp + 0x1c], edx
xor esi, esi
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + esi]
and eax, edi
mov edi, eax
mov edx, 0x1fe35a7b
imul edi, edx
mov edx, 0xd3579bd3
mul edx
add edx, edi
mov edi, dword [esp + 0x10]
mov edi, dword [edi + esi + 4]
mov ebx, esi
and edi, dword [esp + 0x80]
mov ebx, 0xd3579bd3
imul edi, ebx
mov ebx, 0xd3579bd3
add edi, edx
shrd eax, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, eax
mov eax, dword [esp + 0x14]
mov word [eax + edi*2], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + esi + 1]
and eax, dword [esp + 0xc0]
mov edi, eax
mov edx, 0x1fe35a7b
imul edi, edx
mul ebx
add edx, edi
mov edi, dword [esp + 0x10]
mov edi, dword [edi + esi + 5]
and edi, dword [esp + 0x80]
imul edi, ebx
add edi, edx
shrd eax, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, eax
mov eax, dword [esp + 0x14]
mov word [eax + edi*2], 0
mov edi, dword [esp + 0xc0]
add esi, 2
cmp dword [esp + 0x1c], esi
jne 0x436f80
mov edx, dword [esp + 0x80]
test byte [esp + 0x20], 1
je case.0x436ab4.7
mov eax, dword [esp + 0x10]
mov ebx, edi
mov edi, edx
and edi, dword [eax + esi + 4]
and ebx, dword [eax + esi]
mov edx, 0xd3579bd3
mov eax, ebx
mul edx
imul esi, ebx, 0x1fe35a7b
add esi, edx
imul edx, edi, 0xd3579bd3
add edx, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
mov eax, dword [esp + 0x14]
mov word [eax + edx*2], 0
jmp case.0x436ab4.7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x15c]
movd xmm0, dword [ecx + 0x160]
pshufd xmm0, xmm0, 0
xor ecx, ecx
movdqu xmmword [eax + ecx*4], xmm0
movdqu xmmword [eax + ecx*4 + 0x10], xmm0
movdqu xmmword [eax + ecx*4 + 0x20], xmm0
movdqu xmmword [eax + ecx*4 + 0x30], xmm0
movdqu xmmword [eax + ecx*4 + 0x40], xmm0
movdqu xmmword [eax + ecx*4 + 0x50], xmm0
movdqu xmmword [eax + ecx*4 + 0x60], xmm0
movdqu xmmword [eax + ecx*4 + 0x70], xmm0
add ecx, 0x20
cmp ecx, 0x20000
jne 0x437098
jmp case.0x436ab4.7
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1a4], 0
je 0x4392c2
mov esi, dword [esp + 0xc]
mov dword [esi + 0x1a4], 0
mov eax, 0x40000
add eax, dword [esi + 0x19c]
mov dword [esi + 0x178], eax
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x158], ecx
mov edi, dword [ecx]
mov dword [esi + 0x15c], edi
mov dword [esi + 0x160], 0
mov dword [esi + 0x168], 0
mov dword [esi + 0x170], 0x10dcd
mov dword [esi + 0x174], 0x16c43621
mov dword [esi + 0x164], eax
push 0x4000000
push 0xff
push eax
mov byte [esp + 0x20], dl
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
movzx edx, byte [esp + 0x20]
add esp, 0xc
jmp 0x4392cc
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x160]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x201
setae al
xor dl, 1
or dl, al
jne 0x4375dc
test ecx, ecx
je 0x437605
mov ecx, dword [esp + 0x90]
not ecx
xor eax, eax
add ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0x10]
je 0x437285
mov ecx, dword [esp + 0x20]
and ecx, 0xfffffffe
xor eax, eax
imul edx, dword [edi + eax], 0x1e35a7bd
shr edx, 0x11
mov dword [esi + edx*4], 0xcccccccc
mov word [esi + edx*2 + 0x20000], 0xcccc
imul edx, dword [edi + eax + 1], 0x1e35a7bd
shr edx, 0x11
mov dword [esi + edx*4], 0xcccccccc
mov word [esi + edx*2 + 0x20000], 0xcccc
add eax, 2
cmp ecx, eax
jne 0x4371b9
jmp 0x437285
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0x160]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x201
setae al
xor dl, 1
or dl, al
jne 0x4375dc
test ecx, ecx
je 0x437605
mov ecx, dword [esp + 0x90]
not ecx
xor eax, eax
add ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0x10]
je 0x437285
mov ecx, dword [esp + 0x20]
and ecx, 0xfffffffe
xor eax, eax
imul edx, dword [edi + eax], 0x1e35a7bd
shr edx, 0x11
mov dword [esi + edx*4], 0xcccccccc
mov word [esi + edx*2 + 0x20000], 0xcccc
imul edx, dword [edi + eax + 1], 0x1e35a7bd
shr edx, 0x11
mov dword [esi + edx*4], 0xcccccccc
mov word [esi + edx*2 + 0x20000], 0xcccc
add eax, 2
cmp ecx, eax
jne 0x437247
test byte [esp + 0x20], 1
je 0x437605
mov ecx, dword [esp + 0x10]
imul eax, dword [ecx + eax], 0x1e35a7bd
shr eax, 0x11
mov dword [esi + eax*4], 0xcccccccc
mov word [esi + eax*2 + 0x20000], 0xcccc
jmp 0x437605
mov eax, dword [esp + 0xc]
lea esi, [eax + 0x158]
mov edi, dword [eax + 0x55c]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x201
setae al
xor dl, 1
or dl, al
jne 0x43764e
test ecx, ecx
je 0x437677
mov ecx, dword [esp + 0x90]
not ecx
xor eax, eax
add ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x10]
je 0x437343
mov ecx, dword [esp + 0x20]
and ecx, 0xfffffffe
xor eax, eax
imul edx, dword [ebx + eax], 0x1e35a7bd
shr edx, 0x11
mov dword [edi + edx*4], 0xcccccccc
mov word [edi + edx*2 + 0x20000], 0xcccc
imul edx, dword [ebx + eax + 1], 0x1e35a7bd
shr edx, 0x11
mov dword [edi + edx*4], 0xcccccccc
mov word [edi + edx*2 + 0x20000], 0xcccc
add eax, 2
cmp ecx, eax
jne 0x437305
test byte [esp + 0x20], 1
je 0x437677
mov ecx, dword [esp + 0x10]
imul eax, dword [ecx + eax], 0x1e35a7bd
shr eax, 0x11
mov dword [edi + eax*4], 0xcccccccc
mov word [edi + eax*2 + 0x20000], 0xcccc
jmp 0x437677
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x15c]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x8001
setae al
xor dl, 1
or dl, al
jne 0x437694
test ecx, ecx
mov ecx, dword [esp + 0x50]
je 0x4376ac
xor edi, edi
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + edi]
mov eax, ecx
mov edx, 0x35a7bd00
mul edx
mov eax, 0x35a7bd1e
imul ecx, eax
add edx, ecx
mov eax, dword [ebx + edi + 4]
mov ecx, 0x35a7bd00
imul eax, ecx
add edx, eax
shr edx, 0xc
mov dword [esi + edx*4], 0
lea eax, [edx + 8]
and eax, 0xfffff
mov dword [esi + eax*4], 0
lea eax, [edx + 0x10]
and eax, 0xfffff
mov dword [esi + eax*4], 0
add edx, 0x18
and edx, 0xfffff
mov dword [esi + edx*4], 0
inc edi
cmp dword [esp + 0x20], edi
jne 0x4373a6
jmp case.0x436ab4.7
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1a4], 0
je 0x439415
mov edi, dword [esp + 0xc]
mov dword [edi + 0x1a4], 0
mov eax, sym.adb.exe_Ordinal_0
add eax, dword [edi + 0x19c]
mov dword [edi + 0x178], eax
mov ecx, dword [edi + 0x1a0]
mov dword [edi + 0x158], ecx
mov ebx, dword [ecx]
mov dword [edi + 0x15c], ebx
mov dword [edi + 0x160], 0
mov dword [edi + 0x168], 0
mov dword [edi + 0x170], 0x10dcd
mov dword [edi + 0x174], 0x16c43621
mov dword [edi + 0x164], eax
push 0x4000000
push 0xff
push eax
mov byte [esp + 0x20], dl
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
movzx edx, byte [esp + 0x20]
add esp, 0xc
jmp 0x43941f
mov ebx, dword [esp + 0xc]
cmp dword [ebx + 0x1cc], 0
je 0x439529
mov dword [ebx + 0x1cc], 0
mov eax, dword [ebx + 0x1d0]
movzx ecx, byte [eax + 0x24]
movzx eax, byte [eax + 0x28]
mov esi, 2
shl esi, cl
mov byte [esp + 0x14], dl
mov edx, 4
shl edx, cl
mov ecx, eax
shl edx, cl
mov edi, dword [ebx + 0x1c8]
add edx, esi
add edx, dword [ebx + 0x1c4]
mov dword [ebx + 0x1a0], edx
mov dword [ebx + 0x17c], edi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x80], eax
mov ecx, 0x40
sub ecx, eax
mov dword [ebx + 0x160], ecx
mov ch, byte [edi + 0x18]
shl ch, 3
mov cl, 0x40
sub cl, ch
mov esi, 0xffffffff
shr esi, cl
xor ebx, ebx
test cl, 0x20
mov eax, 0xffffffff
cmovne eax, esi
cmove ebx, esi
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x16c], ebx
mov ebx, dword [esp + 0xc]
mov esi, 1
mov ecx, dword [esp + 0x80]
shl esi, cl
mov dword [ebx + 0x168], eax
mov eax, 1
mov dword [ebx + 0x158], esi
mov ecx, dword [edi + 0x14]
shl eax, cl
mov dword [ebx + 0x174], ecx
mov dword [ebx + 0x15c], eax
dec eax
mov dword [ebx + 0x170], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x178], eax
mov edi, dword [edi]
mov dword [ebx + 0x180], edi
lea eax, [edi + esi*2]
mov dword [ebx + 0x184], eax
mov dword [ebx + 0x188], 0
mov dword [ebx + 0x190], 0
mov dword [ebx + 0x198], 0x10dcd
mov dword [ebx + 0x19c], 0xf1ebf081
mov dword [ebx + 0x18c], edx
push 0x4000000
push 0xff
push edx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
movzx edx, byte [esp + 0x20]
add esp, 0xc
jmp 0x439535
lea edi, [esi + 0x20000]
push 0x20000
push 0xcc
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push 0x10000
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
add esi, 0x30000
push 0x10000
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov word [ebx + 0x158], 0
jmp case.0x436ab4.7
push 0x40000
push 0
push edi
jmp 0x43769c
push 0x40000
push 0
push ebx
jmp 0x43769c
push 0x80000
jmp 0x437699
add ecx, ecx
push ecx
push 0
push eax
jmp 0x43769c
add eax, eax
push eax
jmp 0x437699
lea ebx, [edi + 0x20000]
push 0x20000
push 0xcc
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push 0x10000
push 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
add edi, 0x30000
push 0x10000
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push 0x400
jmp 0x437699
push sym.adb.exe_Ordinal_0
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x4376c4
mov eax, dword [esp + 0xc]
mov dword [eax + 0x134], 0
mov dword [eax + 0x138], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x150], 1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x13c]
add eax, 0xfffffffe
cmp eax, 0x3f
ja case.0x4376e8.7
jmp dword [eax*4 + 0x86b4e0]
cmp dword [esp + 0x20], 3
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea esi, [ecx - 3]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x160]
mov ecx, dword [esp + 0x18]
and ecx, esi
mov edx, dword [esp + 0x10]
imul ebx, dword [edx + ecx], 0x1e35a7bd
shr ebx, 0x11
mov edi, esi
sub edi, dword [eax + ebx*4]
cmp edi, 0xffff
mov ecx, 0xffff
cmovae edi, ecx
mov ecx, dword [esp + 0xc]
movzx edx, word [ecx + 0x158]
movzx ecx, si
mov byte [eax + ecx + 0x30000], bl
mov word [eax + edx*4 + 0x40000], di
movzx ecx, word [eax + ebx*2 + 0x20000]
mov word [eax + edx*4 + 0x40002], cx
mov dword [eax + ebx*4], esi
mov word [eax + ebx*2 + 0x20000], dx
mov ecx, dword [esp + 0x50]
lea esi, [ecx - 2]
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x18]
and ecx, esi
mov edi, dword [esp + 0x10]
imul ebx, dword [edi + ecx], 0x1e35a7bd
shr ebx, 0x11
mov ecx, esi
sub ecx, dword [eax + ebx*4]
movzx edi, si
mov byte [eax + edi + 0x30000], bl
lea edi, [edx + 1]
movzx edi, di
cmp ecx, 0xffff
mov esi, 0xffff
cmovae ecx, esi
mov word [eax + edi*4 + 0x40000], cx
movzx ecx, word [eax + ebx*2 + 0x20000]
mov word [eax + edi*4 + 0x40002], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + ebx*4], ecx
mov word [eax + ebx*2 + 0x20000], di
mov ecx, dword [esp + 0x50]
lea esi, [ecx - 1]
mov ecx, dword [esp + 0x18]
and ecx, esi
mov edi, dword [esp + 0x10]
imul ebx, dword [edi + ecx], 0x1e35a7bd
lea edi, [edx + 2]
add edx, 3
mov ecx, dword [esp + 0xc]
mov word [ecx + 0x158], dx
shr ebx, 0x11
mov ecx, esi
sub ecx, dword [eax + ebx*4]
movzx edx, si
mov byte [eax + edx + 0x30000], bl
cmp ecx, 0xffff
mov edx, 0xffff
cmovae ecx, edx
movzx edx, di
mov word [eax + edx*4 + 0x40000], cx
movzx ecx, word [eax + ebx*2 + 0x20000]
mov word [eax + edx*4 + 0x40002], cx
mov dword [eax + ebx*4], esi
mov word [eax + ebx*2 + 0x20000], dx
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x15c]
mov dword [esp + 0x14], eax
shr ecx, 0x10
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0xbd000000
imul ecx, eax, 0xbd1e35a7
mov edx, 0xbd000000
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + ebx*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0xbd000000
mul edx
imul eax, ecx, 0xbd1e35a7
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0xbd000000
add eax, edx
add ecx, eax
shr ecx, 0x10
mov eax, dword [esp + 0x14]
mov dword [eax + ecx*4], ebx
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
shr ecx, 0x10
mov eax, ebx
and eax, 8
add eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x15c]
mov dword [esp + 0x14], ecx
movzx eax, ax
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0xbd000000
imul ecx, eax, 0xbd1e35a7
mov edx, 0xbd000000
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0x10
mov eax, esi
and eax, 8
add eax, ebx
movzx eax, ax
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0xbd000000
mul edx
imul eax, ecx, 0xbd1e35a7
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0xbd000000
add eax, edx
add ecx, eax
shr ecx, 0x10
mov eax, ebx
and eax, 8
add eax, ecx
movzx eax, ax
jmp 0x4383d5
cmp dword [esp + 0x20], 7
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
shr ecx, 0xf
mov eax, ebx
and eax, 0x18
add eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x15c]
mov dword [esp + 0x14], ecx
and eax, 0x1ffff
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0xbd000000
imul ecx, eax, 0xbd1e35a7
mov edx, 0xbd000000
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0xf
mov eax, esi
and eax, 0x18
add eax, ebx
and eax, 0x1ffff
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0xbd000000
mul edx
imul eax, ecx, 0xbd1e35a7
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0xbd000000
add eax, edx
add ecx, eax
shr ecx, 0xf
mov eax, ebx
and eax, 0x18
add eax, ecx
and eax, 0x1ffff
jmp 0x4383d5
cmp dword [esp + 0x20], 3
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea eax, [ecx - 3]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x18]
and esi, eax
mov edx, dword [esp + 0xc]
movzx ecx, byte [edx + 0x160]
mov byte [esp + 0x14], cl
mov eax, dword [esp + 0x10]
imul eax, dword [eax + esi], 0x1e35a7bd
shr eax, cl
mov esi, dword [edx + 0x174]
movzx ecx, byte [edx + 0x168]
mov byte [esp + 0x80], cl
mov edx, eax
shl edx, cl
movzx edi, word [esi + eax*2]
mov ecx, dword [esp + 0xc]
mov ebx, dword [ecx + 0x164]
and edi, ebx
add edx, edi
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x178]
mov dword [esp + 0xc0], ecx
mov edi, dword [esp + 0x1c]
mov dword [ecx + edx*4], edi
inc word [esi + eax*2]
mov eax, dword [esp + 0x50]
lea edi, [eax - 2]
mov edx, dword [esp + 0x18]
and edx, edi
mov eax, dword [esp + 0x10]
imul eax, dword [eax + edx], 0x1e35a7bd
movzx ecx, byte [esp + 0x14]
shr eax, cl
mov edx, eax
movzx ecx, byte [esp + 0x80]
shl edx, cl
movzx ecx, word [esi + eax*2]
and ecx, ebx
add edx, ecx
mov ecx, dword [esp + 0xc0]
mov dword [ecx + edx*4], edi
inc word [esi + eax*2]
mov eax, dword [esp + 0x50]
dec eax
mov ecx, dword [esp + 0x18]
and ecx, eax
mov edx, dword [esp + 0x10]
imul edx, dword [edx + ecx], 0x1e35a7bd
movzx ecx, byte [esp + 0x14]
shr edx, cl
movzx edi, word [esi + edx*2]
and edi, ebx
mov ebx, edx
movzx ecx, byte [esp + 0x80]
shl ebx, cl
add ebx, edi
mov ecx, dword [esp + 0xc0]
mov dword [ecx + ebx*4], eax
inc word [esi + edx*2]
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea eax, [ecx - 3]
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x18]
and esi, eax
mov ebx, dword [esp + 0xc]
mov edx, dword [ebx + 0x168]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + esi]
and ecx, edx
mov edx, 0xd3579bd3
mov eax, ecx
mul edx
imul ecx, ecx, 0x1fe35a7b
add ecx, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx + esi + 4]
mov esi, dword [ebx + 0x16c]
mov dword [esp + 0x70], esi
and edx, esi
imul edx, edx, 0xd3579bd3
add edx, ecx
mov ecx, dword [esp + 0xc]
movzx ebx, byte [ecx + 0x160]
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x180]
mov dword [esp + 0x14], eax
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x170]
mov dword [esp + 0xc0], esi
and esi, eax
inc eax
mov ecx, dword [esp + 0xc]
mov bh, byte [ecx + 0x174]
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x184]
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov word [ecx + edx*2], ax
mov cl, bh
mov byte [esp + 0x48], bh
shl edx, cl
add edx, esi
mov eax, dword [esp + 0x3c]
mov dword [edi + edx*4], eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffffe
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x18]
and ecx, eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + ecx]
and edi, dword [esp + 0x80]
mov eax, edi
mov edx, 0xd3579bd3
mul edx
imul esi, edi, 0x1fe35a7b
add esi, edx
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + ecx + 4]
mov edi, dword [esp + 0x70]
and ecx, edi
imul edx, ecx, 0xd3579bd3
add edx, esi
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*2]
mov esi, dword [esp + 0xc0]
and esi, eax
inc eax
mov word [ecx + edx*2], ax
mov cl, bh
shl edx, cl
add edx, esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x18]
and edx, eax
mov ecx, dword [esp + 0x10]
and edi, dword [ecx + edx + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
and eax, dword [ecx + edx]
mov ecx, eax
mov edx, 0xd3579bd3
mul edx
imul ecx, ecx, 0x1fe35a7b
add ecx, edx
imul edx, edi, 0xd3579bd3
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov edi, dword [esp + 0x14]
movzx eax, word [edi + edx*2]
mov ebx, dword [esp + 0xc0]
and ebx, eax
mov esi, edx
movzx ecx, byte [esp + 0x48]
shl esi, cl
inc eax
mov word [edi + edx*2], ax
add esi, ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov dword [eax + esi*4], ecx
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 3
jb case.0x4376e8.7
cmp ecx, 0x80
jb case.0x4376e8.7
lea esi, [ecx - 0x7f]
mov eax, dword [esp + 0x20]
add eax, ecx
add eax, 0xffffff81
cmp ecx, eax
cmovb eax, ecx
mov dword [esp + 0x100], eax
cmp esi, eax
jae case.0x4376e8.7
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x158]
mov dword [esp + 0x78], eax
mov eax, dword [edx + 0x15c]
mov dword [esp + 0xd0], eax
mov edx, dword [edx + 0x164]
mov dword [esp + 0x68], edx
jmp 0x437e4f
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x160]
mov ecx, dword [esp + 0x40]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x6c]
mov dword [edx + ecx*4], eax
mov esi, dword [esp + 0x48]
inc esi
cmp esi, dword [esp + 0x100]
mov ecx, dword [esp + 0x50]
je case.0x4376e8.7
mov eax, ecx
sub eax, esi
cmp eax, 0x10
mov ecx, 0xf
cmovb eax, ecx
mov ecx, esi
and ecx, dword [esp + 0x18]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x10]
imul ecx, dword [edx + ecx], 0x1e35a7bd
shr ecx, 0xf
mov ebx, dword [esp + 0xd0]
mov edi, dword [ebx + ecx*4]
mov edx, esi
and edx, dword [esp + 0x78]
mov dword [ebx + ecx*4], esi
lea ecx, [edx + edx]
mov dword [esp + 0x40], ecx
lea ecx, [edx + edx]
inc ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x14], edi
cmp edi, esi
mov dword [esp + 0x48], esi
je 0x437e1d
mov ecx, esi
mov esi, dword [esp + 0x78]
sub esi, eax
mov dword [esp + 0xbc], esi
xor edi, edi
mov ebx, 0x40
mov dword [esp + 0x3c], 0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x14]
jmp 0x437efa
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov dword [edx + ebx*4], edi
mov dword [esp + 0x6c], eax
mov edi, ecx
mov eax, dword [edx + eax*4]
mov ecx, dword [esp + 0x48]
cmp eax, ecx
mov ebx, dword [esp + 0xc0]
je 0x437e21
mov dword [esp + 0x14], eax
sub ecx, eax
sub ebx, 1
setb al
cmp ecx, dword [esp + 0xbc]
ja 0x437e21
test al, al
jne 0x437e21
mov dword [esp + 0xc0], ebx
mov edx, dword [esp + 0x14]
and edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x70], edi
mov esi, edi
cmovb esi, eax
mov eax, dword [esp + 0x80]
add eax, esi
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x1c], edx
add edx, esi
add edx, ecx
mov ecx, 0x80
sub ecx, esi
lea edi, [edx + ecx]
lea ebx, [ecx + edx]
add ebx, 0xfffffffc
xor ecx, ecx
cmp ebx, edx
jb 0x437f8e
mov dword [esp + 0xdc], esi
xor ecx, ecx
nop
mov esi, dword [edx + ecx]
cmp esi, dword [eax + ecx]
jne 0x437f85
lea esi, [edx + ecx]
add esi, 4
add ecx, 4
cmp esi, ebx
jbe 0x437f70
add edx, ecx
mov esi, dword [esp + 0xdc]
cmp edx, edi
jae 0x437fb4
sub edi, edx
lea ebx, [edi + ecx]
mov dword [esp + 0xdc], ebx
nop
movzx ebx, byte [eax + ecx]
cmp bl, byte [edx]
jne 0x437fb4
inc edx
inc ecx
dec edi
jne 0x437fa0
mov ecx, dword [esp + 0xdc]
add ecx, esi
cmp ecx, 0x80
jae 0x438009
mov eax, dword [esp + 0x80]
add eax, ecx
mov ebx, dword [esp + 0x10]
movzx edx, byte [ebx + eax]
mov esi, dword [esp + 0x1c]
add esi, ecx
mov edi, dword [esp + 0x14]
mov eax, edi
and eax, dword [esp + 0x78]
add eax, eax
cmp dl, byte [ebx + esi]
jbe 0x437ed3
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
mov dword [edx + ebx*4], edi
or eax, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x70]
jmp 0x437ee4
mov edi, dword [esp + 0x14]
and edi, dword [esp + 0x78]
mov edx, dword [esp + 0x68]
mov eax, dword [edx + edi*8]
mov ecx, dword [esp + 0x40]
mov dword [edx + ecx*4], eax
mov eax, dword [edx + edi*8 + 4]
jmp 0x437e32
cmp dword [esp + 0x20], 7
jb 0x4384d2
cmp ecx, 3
jb 0x4384d2
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
shr ecx, 0x10
mov eax, ebx
and eax, 8
add eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x15c]
mov dword [esp + 0x14], ecx
movzx eax, ax
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0xbd000000
imul ecx, eax, 0xbd1e35a7
mov edx, 0xbd000000
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0x10
mov eax, esi
and eax, 8
add eax, ebx
movzx eax, ax
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0xbd000000
mul edx
imul eax, ecx, 0xbd1e35a7
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0xbd000000
add eax, edx
add ecx, eax
shr ecx, 0x10
mov eax, ebx
and eax, 8
add eax, ecx
mov ecx, dword [esp + 0x50]
movzx eax, ax
jmp 0x4384cb
cmp dword [esp + 0x20], 3
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
add ecx, 0xfffffffd
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x55c]
mov edx, dword [esp + 0x18]
and edx, ecx
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx], 0x1e35a7bd
shr ebx, 0x11
mov edi, ebx
and edi, 0x1ff
mov ecx, dword [esp + 0xc]
movzx esi, word [ecx + edi*2 + 0x158]
lea edx, [esi + 1]
mov ecx, dword [esp + 0xc]
mov word [ecx + edi*2 + 0x158], dx
mov edx, dword [esp + 0x14]
sub edx, dword [eax + ebx*4]
movzx ecx, word [esp + 0x14]
mov byte [eax + ecx + 0x30000], bl
and esi, 0x1ff
cmp edx, 0xffff
mov ecx, 0xffff
cmovae edx, ecx
shl edi, 0xb
lea ecx, [eax + edi]
add ecx, 0x40000
mov word [ecx + esi*4], dx
movzx edx, word [eax + ebx*2 + 0x20000]
mov word [ecx + esi*4 + 2], dx
mov ecx, dword [esp + 0x14]
mov dword [eax + ebx*4], ecx
mov word [eax + ebx*2 + 0x20000], si
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 2]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x18]
and ecx, edx
mov edx, dword [esp + 0x10]
imul ebx, dword [edx + ecx], 0x1e35a7bd
shr ebx, 0x11
mov edi, ebx
and edi, 0x1ff
mov ecx, dword [esp + 0xc]
movzx esi, word [ecx + edi*2 + 0x158]
lea ecx, [esi + 1]
mov edx, dword [esp + 0xc]
mov word [edx + edi*2 + 0x158], cx
mov ecx, dword [esp + 0x14]
sub ecx, dword [eax + ebx*4]
movzx edx, word [esp + 0x14]
mov byte [eax + edx + 0x30000], bl
and esi, 0x1ff
cmp ecx, 0xffff
mov edx, 0xffff
cmovae ecx, edx
shl edi, 0xb
lea edx, [eax + edi]
add edx, 0x40000
mov word [edx + esi*4], cx
movzx ecx, word [eax + ebx*2 + 0x20000]
mov word [edx + esi*4 + 2], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + ebx*4], ecx
mov word [eax + ebx*2 + 0x20000], si
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 1]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x18]
and ecx, edx
mov edx, dword [esp + 0x10]
imul ebx, dword [edx + ecx], 0x1e35a7bd
shr ebx, 0x11
mov edi, ebx
and edi, 0x1ff
mov ecx, dword [esp + 0xc]
movzx esi, word [ecx + edi*2 + 0x158]
lea ecx, [esi + 1]
mov edx, dword [esp + 0xc]
mov word [edx + edi*2 + 0x158], cx
and esi, 0x1ff
mov ecx, dword [esp + 0x14]
sub ecx, dword [eax + ebx*4]
cmp ecx, 0xffff
mov edx, 0xffff
cmovae ecx, edx
movzx edx, word [esp + 0x14]
mov byte [eax + edx + 0x30000], bl
shl edi, 0xb
lea edx, [eax + edi]
add edx, 0x40000
mov word [edx + esi*4], cx
movzx ecx, word [eax + ebx*2 + 0x20000]
mov word [edx + esi*4 + 2], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + ebx*4], ecx
mov word [eax + ebx*2 + 0x20000], si
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb case.0x4376e8.7
cmp ecx, 3
jb case.0x4376e8.7
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0x35a7bd00
mov eax, ecx
mul edx
imul eax, ecx, 0x35a7bd1e
add eax, edx
imul ecx, dword [esi + edi + 4], 0x35a7bd00
add ecx, eax
shr ecx, 0xc
mov eax, ebx
and eax, 0x18
add eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x15c]
mov dword [esp + 0x14], ecx
and eax, 0xfffff
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0x35a7bd00
imul ecx, eax, 0x35a7bd1e
mov edx, 0x35a7bd00
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0xc
mov eax, esi
and eax, 0x18
add eax, ebx
and eax, 0xfffff
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0x35a7bd00
mul edx
imul eax, ecx, 0x35a7bd1e
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0x35a7bd00
add eax, edx
add ecx, eax
shr ecx, 0xc
mov eax, ebx
and eax, 0x18
add eax, ecx
and eax, 0xfffff
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], ebx
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb 0x4384d2
cmp ecx, 3
jb 0x4384d2
lea ebx, [ecx - 3]
mov edi, dword [esp + 0x18]
and edi, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0x35a7bd00
mov eax, ecx
mul edx
imul eax, ecx, 0x35a7bd1e
add eax, edx
imul ecx, dword [esi + edi + 4], 0x35a7bd00
add ecx, eax
shr ecx, 0xc
mov eax, ebx
and eax, 0x18
add eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x15c]
mov dword [esp + 0x14], ecx
and eax, 0xfffff
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x50]
lea esi, [eax - 2]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov ecx, dword [esp + 0x10]
imul ebx, dword [ecx + edx + 4], 0x35a7bd00
imul ecx, eax, 0x35a7bd1e
mov edx, 0x35a7bd00
mul edx
add ecx, edx
add ebx, ecx
shr ebx, 0xc
mov eax, esi
and eax, 0x18
add eax, ebx
and eax, 0xfffff
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x50]
lea ebx, [eax - 1]
and edi, ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi]
mov eax, ecx
mov edx, 0x35a7bd00
mul edx
imul eax, ecx, 0x35a7bd1e
mov ecx, dword [esp + 0x10]
imul ecx, dword [ecx + edi + 4], 0x35a7bd00
add eax, edx
add ecx, eax
shr ecx, 0xc
mov eax, ebx
and eax, 0x18
add eax, ecx
mov ecx, dword [esp + 0x50]
and eax, 0xfffff
mov edx, dword [esp + 0x14]
mov dword [edx + eax*4], ebx
mov eax, ecx
mov esi, dword [esp + 0x20]
mov edx, esi
mov edi, ecx
and ecx, 3
je 0x4384f3
mov edi, 4
sub edi, ecx
xor ecx, ecx
mov edx, esi
sub edx, edi
cmovb edx, ecx
add edi, eax
mov ecx, edi
mov esi, dword [esp + 0x18]
and ecx, esi
sub esi, ecx
cmp edx, esi
cmovb esi, edx
cmp esi, 0x20
jb 0x438579
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x170]
mov eax, dword [esp + 0x10]
movzx esi, byte [eax + ecx]
inc esi
movzx ebx, byte [eax + ecx + 4]
mov dword [esp + 0x14], ebx
imul esi, edx
mov ebx, dword [esp + 0x14]
add esi, ebx
inc esi
movzx ebx, byte [eax + ecx + 8]
imul esi, edx
add esi, ebx
inc esi
movzx ebx, byte [eax + ecx + 0xc]
imul esi, edx
add esi, ebx
inc esi
movzx ebx, byte [eax + ecx + 0x10]
imul esi, edx
add esi, ebx
inc esi
movzx ebx, byte [eax + ecx + 0x14]
imul esi, edx
add esi, ebx
inc esi
movzx ebx, byte [eax + ecx + 0x18]
imul esi, edx
add esi, ebx
inc esi
imul esi, edx
movzx ecx, byte [eax + ecx + 0x1c]
add ecx, esi
inc ecx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x160], ecx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x168], edi
jmp case.0x4376e8.7
cmp dword [esp + 0x20], 7
jb 0x438753
cmp ecx, 3
jb 0x438753
lea eax, [ecx - 3]
mov dword [esp + 0x70], eax
mov esi, dword [esp + 0x18]
and esi, eax
mov ebx, dword [esp + 0xc]
mov edx, dword [ebx + 0x168]
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + esi]
and ecx, edx
mov edx, 0xd3579bd3
mov eax, ecx
mul edx
imul ecx, ecx, 0x1fe35a7b
add ecx, edx
mov edx, dword [edi + esi + 4]
mov esi, dword [ebx + 0x16c]
mov dword [esp + 0x48], esi
and edx, esi
imul edx, edx, 0xd3579bd3
add edx, ecx
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x160]
mov byte [esp + 0x6c], cl
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x180]
mov dword [esp + 0x14], eax
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x170]
mov dword [esp + 0xc0], esi
and esi, eax
inc eax
mov ecx, dword [esp + 0xc]
movzx ebx, byte [ecx + 0x174]
mov byte [esp + 0x3c], bl
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x184]
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov word [ecx + edx*2], ax
mov ecx, ebx
shl edx, cl
add edx, esi
mov eax, dword [esp + 0x70]
mov dword [edi + edx*4], eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffffe
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x18]
and ecx, eax
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + ecx]
and edi, dword [esp + 0x80]
mov eax, edi
mov edx, 0xd3579bd3
mul edx
imul esi, edi, 0x1fe35a7b
add esi, edx
mov ecx, dword [ebx + ecx + 4]
mov edi, dword [esp + 0x48]
and ecx, edi
imul edx, ecx, 0xd3579bd3
add edx, esi
movzx ecx, byte [esp + 0x6c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ebx, ecx
cmove edx, eax
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*2]
mov esi, dword [esp + 0xc0]
and esi, eax
inc eax
mov word [ecx + edx*2], ax
movzx ecx, byte [esp + 0x3c]
shl edx, cl
add edx, esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x18]
and ecx, eax
mov edx, dword [esp + 0x10]
and edi, dword [edx + ecx + 4]
mov eax, dword [esp + 0x80]
and eax, dword [edx + ecx]
mov ecx, eax
mov edx, 0xd3579bd3
mul edx
imul ecx, ecx, 0x1fe35a7b
add ecx, edx
imul edx, edi, 0xd3579bd3
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov edi, dword [esp + 0x14]
movzx eax, word [edi + edx*2]
mov ebx, dword [esp + 0xc0]
and ebx, eax
mov esi, edx
movzx ecx, byte [esp + 0x3c]
shl esi, cl
mov ecx, dword [esp + 0x50]
inc eax
mov word [edi + edx*2], ax
add esi, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
mov dword [eax + esi*4], edx
mov eax, dword [esp + 0x18]
mov edx, ecx
mov ecx, eax
and ecx, edx
sub eax, ecx
mov edx, dword [esp + 0x20]
cmp eax, edx
cmovae eax, edx
cmp eax, 0x20
jb 0x4387c1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x198]
mov edx, dword [esp + 0x10]
add ecx, edx
add ecx, 3
xor edx, edx
xor esi, esi
movzx edi, byte [ecx + edx - 3]
imul esi, eax
add esi, edi
inc esi
movzx edi, byte [ecx + edx - 2]
imul esi, eax
add esi, edi
inc esi
movzx edi, byte [ecx + edx - 1]
imul esi, eax
add esi, edi
inc esi
movzx edi, byte [ecx + edx]
imul esi, eax
add esi, edi
inc esi
add edx, 4
cmp edx, 0x20
jne 0x438784
mov eax, dword [esp + 0xc]
mov dword [eax + 0x188], esi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x190], eax
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0xc0]
xor ecx, ecx
mov edx, 0xbfffffff
cmp edx, eax
sbb ecx, dword [edi + 0xc4]
mov ecx, eax
jae 0x438807
mov ecx, eax
and ecx, 0x3fffffff
lea edx, [eax + eax]
sar edx, 1
and edx, 0xc0000000
add ecx, edx
add ecx, 0x80000000
mov edx, dword [esp + 0xc]
lea edi, [edx + 0xb0]
cmp dword [edx + 4], 0xa
jl 0x438844
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x80]
sub edx, eax
push 0x3fe80000
push 0
push edx
push dword [esp + 0x24]
push ecx
push dword [esp + 0x24]
call fcn.0055a050
add esp, 0x18
test eax, eax
je 0x438a7a
mov eax, 2
mov ecx, eax
shl ecx, 9
mov ebx, dword [edi]
test ebx, ebx
mov dword [esp + 0x70], eax
je 0x438bd2
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xb8], 0
jne 0x438bd2
mov dword [esp + 0x6c], edi
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xac]
mov dword [esp + 0x48], edi
movzx ecx, byte [eax + 8]
mov esi, 1
xor edx, edx
shld edx, esi, cl
dec ebx
shl ebx, 4
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov ecx, 0
cmovne esi, ecx
add esi, 0xfffffff0
adc edx, 0xffffffff
mov ecx, dword [edi + ebx + 4]
mov dword [esp + 0x78], ecx
and ecx, 0x1ffffff
mov edi, dword [eax + 0xc8]
mov dword [esp + 0xbc], ecx
sub edi, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xcc]
sbb eax, 0
cmp edi, esi
mov ecx, esi
cmovb ecx, edi
cmp eax, edx
cmovae edi, esi
cmove edi, ecx
mov dword [esp + 0x1c], edi
mov edi, ebx
cmovae eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
movzx edx, word [eax + ebx + 0xe]
mov esi, edx
and esi, 0x3ff
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x38]
lea ebx, [ecx + 0x10]
cmp esi, ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x68], edx
jb 0x43897f
shr edx, 0xa
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x34]
mov dword [esp + 0x80], edx
sub esi, ecx
mov edx, 0xffffffff
mov ecx, dword [esp + 0x80]
shl edx, cl
not edx
add esi, 0xfffffff0
and edx, esi
mov dword [esp + 0xdc], ebx
xor ebx, ebx
bt esi, ecx
setb bl
or ebx, 2
mov esi, dword [eax + edi + 8]
mov ecx, dword [esp + 0xc0]
shl ebx, cl
add esi, ebx
add esi, 0xfffffffc
mov ecx, dword [esp + 0x80]
shl esi, cl
add edx, dword [esp + 0xdc]
add edx, esi
mov esi, edx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xa4]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 0x8c]
mov dword [esp + 0xc0], eax
mov ecx, dword [edx + 0xd0]
cmp esi, 0x10
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
jb 0x4389c2
mov ebx, ecx
sar ebx, 0x1f
add esi, 0xfffffff1
xor esi, ecx
or esi, ebx
jne 0x438bce
mov esi, ecx
sar esi, 0x1f
cmp dword [esp + 0x1c], ecx
sbb dword [esp + 0x3c], esi
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
lea ebx, [esi + edx]
jb 0x438a8c
cmp dword [esp + 0x20], 0
je 0x438a84
mov dword [esp + 0xbc], ebx
add edx, esi
add edx, 4
mov dword [esp + 0x3c], edx
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0xa0]
add edx, edi
sub edx, dword [esp + 0x90]
mov dword [esp + 0xa0], edx
neg ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov edx, eax
mov esi, edi
mov eax, dword [esp + 0xc0]
and esi, eax
mov ecx, dword [esp + 0x80]
movzx ebx, byte [ecx + esi]
mov byte [esp + 0x90], bl
mov esi, dword [esp + 0x1c]
add esi, edi
and esi, eax
movzx eax, byte [esp + 0x90]
cmp al, byte [ecx + esi]
jne 0x438a99
mov eax, edx
inc eax
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
inc edi
mov ecx, dword [esp + 0x20]
dec ecx
jne 0x438a20
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0xa0]
jmp 0x438a9b
mov eax, 3
jmp 0x438849
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0xbc]
jmp 0x438aaa
mov eax, edx
mov ecx, eax
and ecx, 0x1ffffff
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x50], edi
mov esi, dword [ebx]
shr eax, 0x19
add eax, ecx
cmp esi, 5
ja 0x438abe
mov edx, esi
jmp 0x438b0f
cmp esi, 0x81
ja 0x438adc
add esi, 0xfffffffe
bsr edx, esi
xor edx, 0xffffffe0
lea ecx, [edx + 0x1f]
shr esi, cl
lea edx, [esi + edx*2]
add edx, 0x40
jmp 0x438b0f
cmp esi, 0x841
ja 0x438af5
add esi, 0xffffffbe
bsr edx, esi
xor edx, 0xffe0
add edx, 0x2a
jmp 0x438b0f
mov dx, 0x15
cmp esi, 0x1842
jb 0x438b0f
xor edx, edx
cmp esi, 0x5842
setb dl
xor edx, 0x17
cmp eax, 9
ja 0x438b1f
add eax, 0xfffffffe
mov ecx, eax
mov esi, dword [esp + 0x48]
jmp 0x438b5e
cmp eax, 0x85
ja 0x438b40
add eax, 0xfffffffa
bsr esi, eax
xor esi, 0xffffffe0
lea ecx, [esi + 0x1f]
shr eax, cl
lea ecx, [eax + esi*2]
add ecx, 0x42
mov esi, dword [esp + 0x48]
jmp 0x438b5e
mov cx, 0x17
cmp eax, 0x845
mov esi, dword [esp + 0x48]
ja 0x438b5e
add eax, 0xffffffba
bsr ecx, eax
xor ecx, 0xffe0
add ecx, 0x2c
mov eax, dword [esp + 0x40]
add eax, esi
add eax, 0xc
mov esi, ecx
and esi, 7
mov edi, edx
and edi, 7
lea esi, [esi + edi*8]
movzx esi, si
test dword [esp + 0x68], 0x3ff
jne 0x438b99
cmp dx, 7
ja 0x438b99
cmp cx, 0xf
ja 0x438b99
lea edx, [esi + 0x40]
cmp cx, 8
cmovae esi, edx
jmp 0x438bc7
movzx ecx, cx
shr ecx, 3
movzx edx, dx
shr edx, 3
lea edx, [edx + edx*2]
add edx, ecx
movzx edx, dx
lea ecx, [edx + edx]
mov edi, 0x520d40
shr edi, cl
shl edx, 6
and edi, 0xc0
add edi, edx
add esi, edi
add esi, 0x40
mov edi, dword [esp + 0x6c]
mov word [eax], si
mov ecx, dword [esp + 0x14]
add ecx, dword [0x86ae10]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
cmp eax, 0xb
mov dword [esp + 0x14], ecx
je 0x438c45
cmp eax, 0xa
jne 0x438ca0
mov ebx, dword [esp + 0xc]
lea eax, [ebx + 0xd0]
lea ecx, [ebx + 0xb8]
mov edx, dword [ebx + 0xb0]
shl edx, 4
add edx, dword [ebx + 0xac]
lea esi, [ebx + 0xb4]
push esi
push edi
push edx
push ecx
push eax
push dword [esp + 0x58]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x78]
push dword [esp + 0x4c]
push dword [esp + 0x7c]
call fcn.0055c0c0
add esp, 0x34
jmp 0x438ceb
mov ebx, dword [esp + 0xc]
lea eax, [ebx + 0xd0]
mov dword [esp + 0x90], eax
lea eax, [ebx + 0xb8]
mov edx, dword [ebx + 0xb0]
shl edx, 4
add edx, dword [ebx + 0xac]
lea esi, [ebx + 0xb4]
push esi
push edi
push edx
push eax
push dword [esp + 0xa0]
push dword [esp + 0x58]
push ebx
push ecx
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x78]
push dword [esp + 0x4c]
push dword [esp + 0x7c]
call fcn.0055c1e0
add esp, 0x34
jmp 0x438ceb
mov ebx, dword [esp + 0xc]
lea eax, [ebx + 0xd0]
lea ecx, [ebx + 0xb8]
mov edx, dword [ebx + 0xb0]
shl edx, 4
add edx, dword [ebx + 0xac]
lea esi, [ebx + 0xb4]
push esi
push edi
push edx
push ecx
push eax
push dword [esp + 0x58]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x78]
push dword [esp + 0x4c]
call fcn.0057e480
add esp, 0x30
mov ebx, dword [esp + 0xc]
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp edx, eax
cmovle edx, eax
cmp edx, 0x17
mov ecx, 0x17
cmovl ecx, edx
inc cl
mov esi, 1
mov edx, 1
shl edx, cl
mov ecx, eax
shl esi, cl
mov eax, dword [ebp + 8]
cmp dword [ebx + 4], 3
jg 0x438d3b
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebx + 0xb0]
add ecx, dword [ebx + 0xb4]
cmp ecx, 0x2fff
setae cl
jmp 0x438d3d
xor ecx, ecx
or eax, dword [esp + 0x74]
jne 0x438d94
test cl, cl
jne 0x438d94
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x80]
sub eax, dword [ecx + 0xc0]
add esi, eax
cmp esi, edx
ja 0x438d94
shr edx, 3
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xb4], edx
jae 0x438d94
cmp dword [edi], edx
jae 0x438d94
mov ecx, dword [esp + 0xc]
call fcn.0043ad90
test eax, eax
je 0x438eb0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x150], 0
jmp 0x438eb0
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0xb8]
test esi, esi
je 0x438e81
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0xac]
mov edx, dword [edi + 0xb0]
lea ecx, [edx + 1]
mov dword [edi + 0xb0], ecx
shl edx, 4
mov dword [eax + edx], esi
mov dword [eax + edx + 4], 0x8000000
mov dword [eax + edx + 8], 0
mov word [eax + edx + 0xe], 0x10
cmp esi, 5
ja 0x438de5
mov ecx, esi
jmp 0x438e36
cmp esi, 0x81
ja 0x438e03
add esi, 0xfffffffe
bsr edi, esi
xor edi, 0xffffffe0
lea ecx, [edi + 0x1f]
shr esi, cl
lea ecx, [esi + edi*2]
add ecx, 0x40
jmp 0x438e36
cmp esi, 0x841
ja 0x438e1c
add esi, 0xffffffbe
bsr ecx, esi
xor ecx, 0xffe0
add ecx, 0x2a
jmp 0x438e36
mov cx, 0x15
cmp esi, 0x1842
jb 0x438e36
xor ecx, ecx
cmp esi, 0x5842
setb cl
xor ecx, 0x17
movzx ecx, cx
mov esi, ecx
shr ecx, 3
lea ecx, [ecx + ecx*2]
movzx edi, cx
lea ecx, [edi + edi]
mov ebx, 0x520d40
shr ebx, cl
shl edi, 6
and ebx, 0xc0
add ebx, edi
and esi, 7
lea ecx, [ebx + esi*8]
add ecx, 0x42
mov word [eax + edx + 0xc], cx
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xb8]
add dword [ecx + 0xb4], eax
mov dword [ecx + 0xb8], 0
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x80]
mov eax, dword [eax + 0xc0]
cmp dword [esp + 0x74], 0
jne 0x438ebe
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0xc4]
mov edx, esi
xor edx, eax
xor ecx, dword [edi + 0x84]
or ecx, edx
jne 0x438ebe
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
jmp 0x43aa18
sub esi, eax
mov eax, esi
mov dword [esp + 0x3c], esi
add esi, esi
add esi, 0x1f7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x12c]
cmp dword [ecx + 0x128], esi
jae 0x438f12
push eax
mov edi, dword [esp + 0x50]
push edi
call fcn.00554fb0
add esp, 8
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x12c], 0
push esi
push edi
call fcn.00554f90
add esp, 8
mov dword [ebx + 0x12c], eax
mov dword [ebx + 0x128], esi
mov edx, dword [esp + 0xc]
movzx ecx, byte [edx + 0x122]
mov dword [esp + 0x7c], ecx
movzx ecx, byte [edx + 0x120]
mov byte [eax], cl
movzx ecx, byte [edx + 0x121]
mov byte [eax + 1], cl
mov edi, dword [edx + 0xc4]
mov esi, dword [edx + 0xc0]
xor ecx, ecx
mov edx, 0xbfffffff
cmp edx, esi
mov dword [esp + 0x20], edi
sbb ecx, edi
mov ecx, esi
jae 0x438f6e
mov ecx, esi
and ecx, 0x3fffffff
lea edx, [esi + esi]
sar edx, 1
and edx, 0xc0000000
add ecx, edx
add ecx, 0x80000000
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 0x124]
mov byte [esp + 0xa0], al
movzx eax, byte [ecx + 0x125]
mov byte [esp + 0x50], al
mov eax, dword [ecx + 0xb4]
mov dword [esp + 0x90], eax
mov edx, dword [ecx + 0xac]
mov ebx, dword [ecx + 0xb0]
lea eax, [ecx + 0x110]
mov dword [esp + 0x48], eax
movups xmm0, xmmword [ecx + 0x60]
movaps xmmword [esp + 0x320], xmm0
movups xmm0, xmmword [ecx + 0x50]
movaps xmmword [esp + 0x310], xmm0
movups xmm0, xmmword [ecx + 0x40]
movaps xmmword [esp + 0x300], xmm0
movups xmm0, xmmword [ecx + 0x30]
movaps xmmword [esp + 0x2f0], xmm0
movups xmm0, xmmword [ecx + 0x20]
movaps xmmword [esp + 0x2e0], xmm0
movupd xmm0, xmmword [ecx]
movupd xmm1, xmmword [ecx + 0x10]
movapd xmmword [esp + 0x2d0], xmm1
movapd xmmword [esp + 0x2c0], xmm0
lea eax, [ecx + 0xd0]
mov dword [esp + 0x6c], eax
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x4390c9
mov dword [esp + 0x78], edx
mov eax, ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x68], eax
push eax
push dword [esp + 0x94]
push edi
push dword [esp + 0x2c]
push esi
call fcn.0043aae0
add esp, 0x14
test eax, eax
je 0x439111
mov ebx, dword [esp + 0x1c]
movzx edx, byte [ebx]
movzx ecx, byte [ebx + 1]
movzx edi, byte [esp + 0x7c]
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 4]
cmp eax, 2
mov byte [esp + 0xbc], cl
mov byte [esp + 0xdc], dl
mov dword [esp + 0x44], edi
jg 0x439151
lea eax, [esp + 0x7c]
push ebx
push eax
push dword [esp + 0x70]
push dword [esp + 0x84]
push esi
push dword [esp + 0x88]
push dword [esp + 0x30]
mov eax, dword [esp + 0x58]
push eax
mov edi, dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push dword [esp + 0x74]
call fcn.00567260
add esp, 0x2c
mov ebx, esi
mov esi, dword [esp + 0x3c]
jmp 0x43a885
mov edx, dword [esp + 0x7c]
mov esi, edx
mov eax, edx
and al, 7
mov ecx, eax
xor cl, 0x1f
mov edi, 1
shr edi, cl
mov ebx, 3
mov ecx, eax
shl ebx, cl
shr esi, 3
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx + esi]
or ebx, eax
mov dword [ecx + esi + 4], edi
mov eax, ecx
mov dword [ecx + esi], ebx
add edx, 9
and edx, 0xfffffff8
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0xc]
jmp 0x43a8f2
mov eax, dword [esp + 0x48]
movupd xmm0, xmmword [eax]
mov eax, dword [esp + 0x6c]
movupd xmmword [eax], xmm0
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
push edi
push ebx
mov esi, ecx
push dword [esp + 0x50]
push dword [esp + 0x24]
push dword [esp + 0x8c]
call fcn.00567940
mov eax, esi
add esp, 0x1c
mov ebx, dword [esp + 0xc]
jmp 0x43a8f2
cmp eax, 3
mov ebx, dword [esp + 0x78]
jne 0x439197
lea eax, [esp + 0x7c]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x1c]
push ebx
push dword [esp + 0x88]
push dword [esp + 0x30]
mov esi, dword [esp + 0x58]
push esi
mov edi, dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push dword [esp + 0x74]
call fcn.00566560
add esp, 0x2c
jmp 0x43a885
xorpd xmm0, xmm0
movapd xmmword [esp + 0x180], xmm0
movapd xmmword [esp + 0x170], xmm0
movapd xmmword [esp + 0x160], xmm0
movapd xmmword [esp + 0x150], xmm0
movapd xmmword [esp + 0x140], xmm0
movapd xmmword [esp + 0x130], xmm0
movapd xmmword [esp + 0x120], xmm0
lea esi, [esp + 0x150]
lea eax, [esp + 0x120]
push eax
call fcn.0055d9c0
add esp, 4
lea eax, [esp + 0x138]
push eax
call fcn.0055d9c0
add esp, 4
push esi
call fcn.0055d9c0
add esp, 4
xorpd xmm0, xmm0
movupd xmmword [esp + 0x178], xmm0
movupd xmmword [esp + 0x168], xmm0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x188], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 4]
movzx ecx, byte [esp + 0x50]
movzx edx, byte [esp + 0xa0]
mov dword [esp + 0x114], eax
cmp eax, 9
mov edi, dword [esp + 0x40]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x118], edx
jg 0x439284
xor eax, eax
mov ecx, 1
cmp dword [esi + 0x18], 0
mov ebx, esi
je 0x439715
mov esi, dword [esp + 0x10]
jmp 0x43a721
lea eax, [esp + 0x120]
push eax
push dword [esp + 0x74]
push dword [esp + 0x70]
push ebx
push ecx
push edx
lea eax, [esp + 0x2d8]
push eax
push dword [esp + 0x34]
push edi
mov edi, dword [esp + 0x34]
push edi
push dword [esp + 0x74]
call fcn.00555160
add esp, 0x2c
mov ebx, esi
mov esi, edi
mov edi, dword [esp + 0x40]
jmp 0x43a75a
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x15c]
mov esi, dword [esp + 0x20]
cmp esi, 0x801
setae al
xor dl, 1
or dl, al
jne 0x4393f5
test esi, esi
mov ecx, dword [esp + 0x50]
je 0x4376ac
mov eax, dword [esp + 0x90]
not eax
mov ebx, edi
xor edi, edi
add eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
je 0x4393ad
mov eax, dword [esp + 0x20]
and eax, 0xfffffffe
mov dword [esp + 0x80], eax
xor edi, edi
mov eax, dword [esi + edi]
mov ecx, dword [esi + edi + 4]
mov edx, 0xbd000000
imul ecx, edx
mov edx, 0xbd000000
mov ebx, eax
mul edx
mov eax, 0xbd1e35a7
imul ebx, eax
add edx, ebx
mov ebx, dword [esp + 0x14]
add edx, ecx
shr edx, 0x10
mov dword [ebx + edx*4], 0
add edx, 8
movzx eax, dx
mov dword [ebx + eax*4], 0
mov eax, dword [esi + edi + 1]
mov ecx, eax
mov edx, 0xbd1e35a7
imul ecx, edx
mov edx, 0xbd000000
mul edx
add edx, ecx
mov eax, dword [esi + edi + 5]
mov ecx, 0xbd000000
imul eax, ecx
add edx, eax
shr edx, 0x10
mov dword [ebx + edx*4], 0
add edx, 8
movzx eax, dx
mov dword [ebx + eax*4], 0
add edi, 2
cmp dword [esp + 0x80], edi
jne 0x439322
mov ebx, dword [esp + 0x20]
test bl, 1
je 0x439407
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov edx, 0xbd000000
mov eax, ecx
mul edx
imul eax, ecx, 0xbd1e35a7
add eax, edx
imul ecx, dword [esi + edi + 4], 0xbd000000
add ecx, eax
shr ecx, 0x10
mov edx, dword [esp + 0x14]
mov dword [edx + ecx*4], 0
add ecx, 8
movzx eax, cx
mov dword [edx + eax*4], 0
jmp 0x439407
push 0x40000
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ebx, esi
cmp ebx, 0x20
jb case.0x436ab4.7
jmp 0x4394c5
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x15c]
mov edi, dword [esp + 0x20]
cmp edi, 0x8001
setae al
xor dl, 1
or dl, al
jne 0x4394aa
test edi, edi
mov ecx, dword [esp + 0x50]
je 0x4376ac
xor edi, edi
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + edi]
mov eax, ecx
mov edx, 0x35a7bd00
mul edx
mov eax, 0x35a7bd1e
imul ecx, eax
add edx, ecx
mov eax, dword [esi + edi + 4]
mov ecx, 0x35a7bd00
imul eax, ecx
add edx, eax
shr edx, 0xc
mov dword [ebx + edx*4], 0
lea eax, [edx + 8]
and eax, 0xfffff
mov dword [ebx + eax*4], 0
lea eax, [edx + 0x10]
and eax, 0xfffff
mov dword [ebx + eax*4], 0
add edx, 0x18
and edx, 0xfffff
mov dword [ebx + edx*4], 0
inc edi
cmp dword [esp + 0x20], edi
jne 0x439445
jmp 0x4394ba
push sym.adb.exe_Ordinal_0
push 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
cmp dword [esp + 0x20], 0x20
jb case.0x436ab4.7
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x170]
mov edi, dword [esp + 0x10]
movzx ecx, byte [edi]
inc ecx
movzx edx, byte [edi + 4]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 8]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 0xc]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 0x10]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 0x14]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 0x18]
imul ecx, eax
add ecx, edx
inc ecx
movzx edx, byte [edi + 0x1c]
imul ecx, eax
lea eax, [edx + ecx]
inc eax
mov dword [esi + 0x160], eax
jmp case.0x436ab4.7
mov esi, dword [ebx + 0x158]
mov edi, dword [ebx + 0x180]
test dl, dl
mov ebx, dword [esp + 0x20]
je 0x4396ae
mov eax, esi
shr eax, 6
cmp eax, ebx
jb 0x4396ae
test ebx, ebx
je case.0x436ab4.7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x16c]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 0x160]
mov edx, dword [eax + 0x168]
mov eax, dword [esp + 0x90]
not eax
xor esi, esi
add eax, dword [esp + 0xa0]
mov dword [esp + 0xc0], edx
je 0x439652
mov eax, dword [esp + 0x20]
and eax, 0xfffffffe
mov dword [esp + 0x1c], eax
xor esi, esi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + esi]
and eax, edx
mov edi, eax
mov edx, 0x1fe35a7b
imul edi, edx
mov edx, 0xd3579bd3
mul edx
add edx, edi
mov edi, dword [esp + 0x10]
mov edi, dword [edi + esi + 4]
mov ebx, esi
and edi, dword [esp + 0x80]
mov ebx, 0xd3579bd3
imul edi, ebx
mov ebx, 0xd3579bd3
add edi, edx
shrd eax, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, eax
mov eax, dword [esp + 0x14]
mov word [eax + edi*2], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + esi + 1]
and eax, dword [esp + 0xc0]
mov edi, eax
mov edx, 0x1fe35a7b
imul edi, edx
mul ebx
add edx, edi
mov edi, dword [esp + 0x10]
mov edi, dword [edi + esi + 5]
and edi, dword [esp + 0x80]
imul edi, ebx
add edi, edx
mov edx, dword [esp + 0xc0]
shrd eax, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, eax
mov eax, dword [esp + 0x14]
mov word [eax + edi*2], 0
mov edi, dword [esp + 0x14]
add esi, 2
cmp dword [esp + 0x1c], esi
jne 0x4395a3
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x20]
test bl, 1
je 0x4396bc
mov eax, dword [esp + 0x10]
and edx, dword [eax + esi + 4]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0xc0]
and edx, dword [eax + esi]
mov esi, edx
mov edx, 0xd3579bd3
mov eax, esi
mul edx
imul esi, esi, 0x1fe35a7b
add esi, edx
imul edx, dword [esp + 0x80], 0xd3579bd3
add edx, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
mov word [edi + edx*2], 0
jmp 0x4396bc
add esi, esi
push esi
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
cmp ebx, 0x20
jb case.0x436ab4.7
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x198]
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x10]
movzx esi, byte [ebx + ecx]
imul edx, eax
add edx, esi
inc edx
movzx esi, byte [ebx + ecx + 1]
imul edx, eax
add edx, esi
inc edx
movzx esi, byte [ebx + ecx + 2]
imul edx, eax
add edx, esi
inc edx
movzx esi, byte [ebx + ecx + 3]
imul edx, eax
add edx, esi
inc edx
add ecx, 4
cmp ecx, 0x20
jne 0x4396d7
mov dword [edi + 0x188], edx
jmp case.0x436ab4.7
cmp dword [esp + 0x3c], 0x40
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x120]
jb 0x43a728
cmp dword [esp + 0x114], 5
jl 0x43a728
mov eax, dword [esp + 0x3c]
lea ecx, [edi + eax]
cmp dword [ebx + 0x14], 0xfffff
mov dword [esp + 0xf0], ecx
ja 0x439758
lea ebx, [edi + 0x40]
jmp 0x439cc0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x2b0], xmm0
movapd xmmword [esp + 0x2a0], xmm0
movapd xmmword [esp + 0x290], xmm0
movapd xmmword [esp + 0x280], xmm0
movapd xmmword [esp + 0x270], xmm0
movapd xmmword [esp + 0x260], xmm0
movapd xmmword [esp + 0x250], xmm0
movapd xmmword [esp + 0x240], xmm0
lea eax, [esp + 0x330]
push 0x680
push 0
push eax
mov ebx, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea ecx, [edi + 0x40]
mov dword [esp + 0xec], 0
cmp ecx, ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xe0], ecx
jbe 0x439942
xorpd xmm0, xmm0
movsd qword [esp + 0x100], xmm0
mov esi, 0xfffffffe
xor ebx, ebx
jmp 0x43986e
sub esp, 8
movsd qword [esp], xmm3
movsd qword [esp + 0x98], xmm2
movapd xmmword [esp + 0xa8], xmm3
call fcn.0058e124
movapd xmm3, xmmword [esp + 0xa8]
movsd xmm2, qword [esp + 0x98]
add esp, 8
fstp qword [esp + 0x230]
movsd xmm0, qword [esp + 0x230]
movapd xmm1, xmmword [esp + 0x20]
mulsd xmm2, xmm1
movsd xmm1, qword [esp + 0x100]
subsd xmm1, xmm2
add ebx, edi
mulsd xmm0, xmm3
subsd xmm1, xmm0
movsd qword [esp + 0x100], xmm1
add esi, 2
cmp esi, 0x1e
jae 0x439905
mov edi, dword [esp + esi*4 + 0x248]
movss xmm0, dword [esp + esi*4 + 0x248]
orpd xmm0, xmmword [0x86b1a0]
subsd xmm0, qword [0x86b1b0]
cmp edi, 0xff
movapd xmmword [esp + 0x20], xmm0
ja 0x4398a8
mov eax, dword [0x86baec]
movsd xmm2, qword [eax + edi*8]
jmp 0x4398c8
sub esp, 8
movsd qword [esp], xmm0
call fcn.0058e124
add esp, 8
fstp qword [esp + 0x238]
movsd xmm2, qword [esp + 0x238]
add ebx, edi
mov edi, dword [esp + esi*4 + 0x24c]
movss xmm3, dword [esp + esi*4 + 0x24c]
orpd xmm3, xmmword [0x86b1a0]
subsd xmm3, qword [0x86b1b0]
cmp edi, 0xff
ja 0x4397f4
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + edi*8]
jmp 0x439838
test ebx, ebx
je 0x439a4d
movd xmm0, ebx
por xmm0, xmmword [0x86b1a0]
subsd xmm0, qword [0x86b1b0]
cmp ebx, 0xff
movapd xmmword [esp + 0x20], xmm0
ja 0x439a11
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ebx*8]
jmp 0x439a31
mov edx, ebx
mov dword [esp + 0xec], 0
mov ebx, ecx
jmp 0x439967
add edi, 0x1000
add ebx, 0x1000
cmp ebx, edx
ja 0x4397de
lea ecx, [edi + 2]
cmp ecx, ebx
jae 0x439953
mov dword [esp + 0x90], ebx
lea ecx, [edi + 1]
and ecx, eax
movzx ebx, byte [esi + ecx]
mov ecx, edi
and ecx, eax
movzx ecx, byte [esi + ecx]
mov esi, 2
mov dword [esp + 0x20], edi
movzx edi, cl
mov ecx, ebx
mov eax, dword [esp + 0x20]
lea ebx, [eax + esi]
and ebx, dword [esp + 0x18]
movzx eax, cl
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx + ebx]
mov edx, dword [0x86ae10]
mov ch, byte [edx + edi + 0x500]
or ch, byte [edx + eax + 0x400]
movzx eax, ch
movzx eax, byte [eax*4 + str._v_v_f_f]
mov edi, ebx
shr edi, 1
and edi, 0x7c
shl eax, 7
add eax, esp
add eax, 0x330
inc dword [edi + eax]
inc dword [esp + edi + 0x240]
inc esi
cmp esi, 0x40
jne 0x43998f
add dword [esp + 0xec], 0x3e
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x20]
jmp 0x439953
sub esp, 8
movsd qword [esp], xmm0
call fcn.0058e124
add esp, 8
fstp qword [esp + 0x228]
movsd xmm0, qword [esp + 0x228]
mulsd xmm0, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x100]
addsd xmm1, xmm0
movsd qword [esp + 0x100], xmm1
xorpd xmm2, xmm2
mov dword [esp + 0xd0], 0
lea eax, [esp + 0x334]
mov dword [esp + 0x20], eax
jmp 0x439a96
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
addsd xmm2, xmm1
mov ecx, dword [esp + 0xd0]
inc ecx
sub dword [esp + 0x20], 0xffffff80
mov dword [esp + 0xd0], ecx
cmp ecx, 0xd
je 0x439c67
movsd qword [esp + 0x50], xmm2
mov edi, 0xfffffffe
xorpd xmm1, xmm1
xor esi, esi
jmp 0x439b2d
sub esp, 8
movsd qword [esp], xmm5
movsd qword [esp + 0x88], xmm4
movapd xmmword [esp + 0xc8], xmm5
call fcn.0058e124
movapd xmm5, xmmword [esp + 0xc8]
movsd xmm4, qword [esp + 0x88]
add esp, 8
fstp qword [esp + 0x218]
movsd xmm0, qword [esp + 0x218]
lea edx, [esp + 0x120]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x90]
movapd xmm3, xmmword [esp + 0xa0]
mulsd xmm4, xmm3
subsd xmm1, xmm4
add esi, ebx
mulsd xmm0, xmm5
subsd xmm1, xmm0
add edi, 2
cmp edi, 0x1e
jae 0x439bcc
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + edi*4 + 4]
movss xmm0, dword [eax + edi*4 + 4]
orpd xmm0, xmmword [0x86b1a0]
subsd xmm0, qword [0x86b1b0]
cmp ebx, 0xff
movsd qword [esp + 0x90], xmm1
movapd xmmword [esp + 0xa0], xmm0
ja 0x439b71
mov eax, dword [0x86baec]
movsd xmm4, qword [eax + ebx*8]
jmp 0x439b91
sub esp, 8
movsd qword [esp], xmm0
call fcn.0058e124
add esp, 8
fstp qword [esp + 0x220]
movsd xmm4, qword [esp + 0x220]
add esi, ebx
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + edi*4 + 8]
movss xmm5, dword [eax + edi*4 + 8]
orpd xmm5, xmmword [0x86b1a0]
subsd xmm5, qword [0x86b1b0]
cmp ebx, 0xff
ja 0x439aac
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ebx*8]
jmp 0x439af0
test esi, esi
je 0x439a69
movd xmm3, esi
por xmm3, xmmword [0x86b1a0]
subsd xmm3, qword [0x86b1b0]
cmp esi, 0xff
mov edi, dword [esp + 0x40]
ja 0x439c01
mov ecx, dword [0x86baec]
movsd xmm0, qword [ecx + esi*8]
jmp 0x439c52
sub esp, 8
movsd qword [esp], xmm3
movsd qword [esp + 0x98], xmm1
movapd xmmword [esp + 0xa8], xmm3
call fcn.0058e124
movapd xmm3, xmmword [esp + 0xa8]
movsd xmm1, qword [esp + 0x98]
movsd xmm2, qword [esp + 0x58]
lea edx, [esp + 0x128]
add esp, 8
fstp qword [esp + 0x210]
movsd xmm0, qword [esp + 0x210]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mulsd xmm0, xmm3
addsd xmm1, xmm0
jmp 0x439a75
movss xmm1, dword [esp + 0xec]
orpd xmm1, xmmword [0x86b1a0]
subsd xmm1, qword [0x86b1b0]
movsd xmm0, qword [0x86b1b8]
divsd xmm0, xmm1
mulsd xmm2, xmm0
ucomisd xmm2, qword [0x86b1c0]
ja 0x439cb9
mulsd xmm0, qword [esp + 0x100]
subsd xmm0, xmm2
movsd xmm1, qword [0x86b1c8]
ucomisd xmm1, xmm0
jbe 0x43aa25
mov ebx, dword [esp + 0xe0]
xorpd xmm0, xmm0
movapd xmmword [esp + 0x340], xmm0
movapd xmmword [esp + 0x330], xmm0
mov dword [esp + 0x350], 0
xor ecx, ecx
mov eax, 0
mov edx, 0
mov esi, 0
mov edi, 0
mov dword [esp + 0x20], 0
cmp ebx, dword [esp + 0xf0]
ja 0x439e57
mov edx, dword [esp + 0x40]
mov eax, edx
not eax
add eax, ebx
mov dword [esp + 0x90], eax
lea eax, [ebx - 2]
mov dword [esp + 0xa0], eax
jmp 0x439d46
mov edx, dword [esp + 0x20]
add edx, 0x1000
add ebx, 0x1000
cmp ebx, dword [esp + 0xf0]
ja 0x439e14
mov dword [esp + 0x20], edx
lea esi, [edx + 1]
cmp esi, ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
jae 0x439d29
mov edx, dword [esp + 0x20]
mov edi, edx
and edi, eax
movzx edi, byte [ecx + edi]
shr edi, 4
and edi, 0xc
mov edi, dword [edi + 0x86b7dc]
test byte [esp + 0x90], 1
je 0x439daa
mov dword [esp + 0xe0], ebx
lea ebx, [edi + edi*2]
and esi, eax
movzx esi, byte [ecx + esi]
shr esi, 4
and esi, 0xc
mov edi, dword [esi + 0x86b7dc]
add ebx, edi
inc dword [esp + ebx*4 + 0x330]
mov ebx, dword [esp + 0xe0]
lea esi, [edx + 2]
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
je 0x439d29
lea edi, [edi + edi*2]
mov edx, ebx
mov ebx, esi
and ebx, eax
movzx ebx, byte [ecx + ebx]
shr ebx, 4
and ebx, 0xc
mov ebx, dword [ebx + 0x86b7dc]
add edi, ebx
inc dword [esp + edi*4 + 0x330]
lea ebx, [ebx + ebx*2]
lea edi, [esi + 1]
and edi, eax
movzx edi, byte [ecx + edi]
shr edi, 4
and edi, 0xc
mov edi, dword [edi + 0x86b7dc]
add ebx, edi
inc dword [esp + ebx*4 + 0x330]
mov ebx, edx
add esi, 2
cmp esi, ebx
jne 0x439dc3
jmp 0x439d29
mov edx, dword [esp + 0x33c]
mov eax, dword [esp + 0x340]
mov esi, dword [esp + 0x348]
mov edi, dword [esp + 0x34c]
add esi, dword [esp + 0x330]
add edi, dword [esp + 0x334]
mov ecx, dword [esp + 0x350]
add ecx, dword [esp + 0x338]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x344]
mov dword [esp + 0x50], edx
mov dword [esp + 0xc0], esi
add esi, edx
movd xmm1, esi
por xmm1, xmmword [0x86b1a0]
mov dword [esp + 0x90], eax
mov dword [esp + 0x100], edi
add edi, eax
subsd xmm1, qword [0x86b1b0]
cmp esi, 0x100
jae 0x439e9c
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + esi*8]
jmp 0x439ed2
sub esp, 8
movsd qword [esp], xmm1
mov ebx, ecx
movapd xmmword [esp + 0xa8], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0xa8]
mov ecx, ebx
add esp, 8
fstp qword [esp + 0x208]
movsd xmm0, qword [esp + 0x208]
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x20]
lea ebx, [eax + ecx]
mulsd xmm0, xmm1
xorpd xmm1, xmm1
subsd xmm1, xmm0
movsd qword [esp + 0xd0], xmm1
movd xmm1, edi
por xmm1, xmmword [0x86b1a0]
add esi, edi
subsd xmm1, qword [0x86b1b0]
cmp edi, 0x100
jae 0x439f1f
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + edi*8]
jmp 0x439f51
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x88], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x88]
add esp, 8
fstp qword [esp + 0x200]
movsd xmm0, qword [esp + 0x200]
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xd0]
subsd xmm1, xmm0
movsd qword [esp + 0xd0], xmm1
movd xmm1, ebx
por xmm1, xmmword [0x86b1a0]
add esi, ebx
subsd xmm1, qword [0x86b1b0]
cmp ebx, 0x100
mov edi, dword [esp + 0x90]
jae 0x439f9c
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ebx*8]
jmp 0x439fce
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x88], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x88]
add esp, 8
fstp qword [esp + 0x1f8]
movsd xmm0, qword [esp + 0x1f8]
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xd0]
subsd xmm1, xmm0
movapd xmm0, xmm1
movd xmm1, esi
test esi, esi
movdqa xmmword [esp + 0x80], xmm1
mov ebx, dword [esp + 0xc0]
je 0x43a073
movsd qword [esp + 0xd0], xmm0
movdqa xmm2, xmmword [0x86b1a0]
por xmm2, xmm1
subsd xmm2, qword [0x86b1b0]
cmp esi, 0xff
ja 0x43a02c
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + esi*8]
jmp 0x43a05e
sub esp, 8
movsd qword [esp], xmm2
movapd xmmword [esp + 0xf8], xmm2
call fcn.0058e124
movapd xmm2, xmmword [esp + 0xf8]
add esp, 8
fstp qword [esp + 0x1f0]
movsd xmm0, qword [esp + 0x1f0]
mulsd xmm0, xmm2
movsd xmm1, qword [esp + 0xd0]
addsd xmm1, xmm0
movapd xmm0, xmm1
mov esi, dword [esp + 0x50]
movsd qword [esp + 0xd0], xmm0
movd xmm1, ebx
por xmm1, xmmword [0x86b1a0]
subsd xmm1, qword [0x86b1b0]
cmp ebx, 0x100
jae 0x43a0a8
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ebx*8]
jmp 0x43a0d4
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x58], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x58]
add esp, 8
fstp qword [esp + 0x1e8]
movsd xmm0, qword [esp + 0x1e8]
mulsd xmm0, xmm1
xorpd xmm1, xmm1
subsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
mov ecx, dword [esp + 0x100]
movd xmm1, ecx
por xmm1, xmmword [0x86b1a0]
add ebx, ecx
subsd xmm1, qword [0x86b1b0]
cmp ecx, 0x100
jae 0x43a11a
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ecx*8]
jmp 0x43a146
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x58], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x58]
add esp, 8
fstp qword [esp + 0x1e0]
movsd xmm0, qword [esp + 0x1e0]
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
subsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
mov ecx, dword [esp + 0x20]
movd xmm1, ecx
por xmm1, xmmword [0x86b1a0]
add ebx, ecx
subsd xmm1, qword [0x86b1b0]
cmp ecx, 0x100
jae 0x43a18e
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ecx*8]
jmp 0x43a1ba
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x28], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x28]
add esp, 8
fstp qword [esp + 0x1d8]
movsd xmm0, qword [esp + 0x1d8]
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
subsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
test ebx, ebx
je 0x43a246
movd xmm1, ebx
por xmm1, xmmword [0x86b1a0]
subsd xmm1, qword [0x86b1b0]
cmp ebx, 0xff
ja 0x43a200
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ebx*8]
jmp 0x43a22c
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x28], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x28]
add esp, 8
fstp qword [esp + 0x1d0]
movsd xmm0, qword [esp + 0x1d0]
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
addsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
movd xmm1, esi
por xmm1, xmmword [0x86b1a0]
subsd xmm1, qword [0x86b1b0]
cmp esi, 0x100
jae 0x43a26e
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + esi*8]
jmp 0x43a29a
sub esp, 8
movsd qword [esp], xmm1
movapd xmmword [esp + 0x28], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0x28]
add esp, 8
fstp qword [esp + 0x1c8]
movsd xmm0, qword [esp + 0x1c8]
mulsd xmm0, xmm1
xorpd xmm1, xmm1
movd xmm2, edi
por xmm2, xmmword [0x86b1a0]
subsd xmm1, xmm0
subsd xmm2, qword [0x86b1b0]
cmp edi, 0x100
jae 0x43a2ce
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + edi*8]
jmp 0x43a30c
sub esp, 8
movsd qword [esp], xmm2
movsd qword [esp + 0xe8], xmm1
movapd xmmword [esp + 0x28], xmm2
call fcn.0058e124
movapd xmm2, xmmword [esp + 0x28]
movsd xmm1, qword [esp + 0xe8]
add esp, 8
fstp qword [esp + 0x1c0]
movsd xmm0, qword [esp + 0x1c0]
mulsd xmm0, xmm2
subsd xmm1, xmm0
mov ecx, dword [esp + 0xa0]
add edi, ecx
movd xmm2, ecx
por xmm2, xmmword [0x86b1a0]
add edi, esi
subsd xmm2, qword [0x86b1b0]
cmp ecx, 0x100
jae 0x43a347
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + ecx*8]
jmp 0x43a385
sub esp, 8
movsd qword [esp], xmm2
movsd qword [esp + 0xe8], xmm1
movapd xmmword [esp + 0x28], xmm2
call fcn.0058e124
movapd xmm2, xmmword [esp + 0x28]
movsd xmm1, qword [esp + 0xe8]
add esp, 8
fstp qword [esp + 0x1b8]
movsd xmm0, qword [esp + 0x1b8]
mulsd xmm0, xmm2
subsd xmm1, xmm0
test edi, edi
je 0x43a3ff
movd xmm2, edi
por xmm2, xmmword [0x86b1a0]
subsd xmm2, qword [0x86b1b0]
cmp edi, 0xff
ja 0x43a3b9
mov eax, dword [0x86baec]
movsd xmm0, qword [eax + edi*8]
jmp 0x43a3f7
sub esp, 8
movsd qword [esp], xmm2
movsd qword [esp + 0xe8], xmm1
movapd xmmword [esp + 0x28], xmm2
call fcn.0058e124
movapd xmm2, xmmword [esp + 0x28]
movsd xmm1, qword [esp + 0xe8]
add esp, 8
fstp qword [esp + 0x1b0]
movsd xmm0, qword [esp + 0x1b0]
mulsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [esp + 0xe0], xmm1
xorpd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov esi, 8
movapd xmm2, xmmword [0x86b1a0]
movsd xmm3, qword [0x86b1b0]
mov edi, dword [0x86baec]
jmp 0x43a4b3
sub esp, 8
movsd qword [esp], xmm1
movsd qword [esp + 0x98], xmm4
movapd xmmword [esp + 0xa8], xmm1
call fcn.0058e124
movapd xmm1, xmmword [esp + 0xa8]
movsd xmm4, qword [esp + 0x98]
movsd xmm3, qword [0x86b1b0]
movapd xmm2, xmmword [0x86b1a0]
add esp, 8
fstp qword [esp + 0x190]
movsd xmm0, qword [esp + 0x190]
mulsd xmm0, xmm1
addsd xmm4, xmm0
movapd xmm0, xmmword [esp + 0x80]
movsd xmm1, qword [esp + 0x20]
addsd xmm1, xmm4
movsd qword [esp + 0x20], xmm1
add esi, 0xc
cmp esi, 0x2c
je 0x43a64c
mov ebx, dword [esp + esi + 0x328]
movss xmm0, dword [esp + esi + 0x328]
orpd xmm0, xmm2
subsd xmm0, xmm3
cmp ebx, 0x100
movapd xmmword [esp + 0x90], xmm0
jae 0x43a4e3
movsd xmm0, qword [edi + ebx*8]
jmp 0x43a513
sub esp, 8
movsd qword [esp], xmm0
call fcn.0058e124
movsd xmm3, qword [0x86b1b0]
movapd xmm2, xmmword [0x86b1a0]
add esp, 8
fstp qword [esp + 0x1a8]
movsd xmm0, qword [esp + 0x1a8]
movsd qword [esp + 0xa0], xmm0
mov eax, dword [esp + esi + 0x32c]
add ebx, eax
movss xmm0, dword [esp + esi + 0x32c]
orpd xmm0, xmm2
subsd xmm0, xmm3
cmp eax, 0x100
movapd xmmword [esp + 0x50], xmm0
jae 0x43a54a
movsd xmm5, qword [edi + eax*8]
jmp 0x43a57a
sub esp, 8
movsd qword [esp], xmm0
call fcn.0058e124
movsd xmm3, qword [0x86b1b0]
movapd xmm2, xmmword [0x86b1a0]
add esp, 8
fstp qword [esp + 0x1a0]
movsd xmm5, qword [esp + 0x1a0]
mov eax, dword [esp + esi + 0x330]
add ebx, eax
movss xmm6, dword [esp + esi + 0x330]
orpd xmm6, xmm2
subsd xmm6, xmm3
cmp eax, 0x100
jae 0x43a5a2
movsd xmm0, qword [edi + eax*8]
jmp 0x43a5f6
sub esp, 8
movsd qword [esp], xmm6
movsd qword [esp + 0xc8], xmm5
movapd xmmword [esp + 0x108], xmm6
call fcn.0058e124
movapd xmm6, xmmword [esp + 0x108]
movsd xmm5, qword [esp + 0xc8]
movsd xmm3, qword [0x86b1b0]
movapd xmm2, xmmword [0x86b1a0]
add esp, 8
fstp qword [esp + 0x198]
movsd xmm0, qword [esp + 0x198]
movsd xmm1, qword [esp + 0xa0]
mulsd xmm1, qword [esp + 0x90]
xorpd xmm4, xmm4
subsd xmm4, xmm1
mulsd xmm5, qword [esp + 0x50]
subsd xmm4, xmm5
mulsd xmm0, xmm6
subsd xmm4, xmm0
test ebx, ebx
je 0x43a48e
movd xmm1, ebx
por xmm1, xmm2
subsd xmm1, xmm3
cmp ebx, 0xff
ja 0x43a432
movsd xmm0, qword [edi + ebx*8]
jmp 0x43a486
orpd xmm0, xmmword [0x86b1a0]
movsd xmm4, qword [esp + 0xf0]
addsd xmm4, qword [esp + 0xe0]
subsd xmm0, qword [0x86b1b0]
movapd xmm1, xmm0
movsd xmm0, qword [0x86b1b8]
divsd xmm0, xmm1
movsd xmm1, qword [esp + 0xd0]
mulsd xmm1, xmm0
movsd qword [esp + 0xd0], xmm1
mulsd xmm4, xmm0
cmp dword [esp + 0x114], 7
jl 0x43a6aa
mulsd xmm0, qword [esp + 0x20]
jmp 0x43a6bb
movsd xmm0, qword [0x86b1d0]
mulsd xmm0, qword [esp + 0xd0]
movsd xmm3, qword [esp + 0xd0]
movapd xmm2, xmm3
subsd xmm2, xmm4
movsd xmm1, qword [0x86b1c8]
ucomisd xmm1, xmm2
jbe 0x43a6ed
subsd xmm3, xmm0
ucomisd xmm1, xmm3
jbe 0x43a6ed
xor eax, eax
mov ecx, 1
jmp 0x43a715
subsd xmm4, xmm0
movsd xmm0, qword [0x86b1d8]
ucomisd xmm0, xmm4
jbe 0x43a70b
mov eax, 0x86b9ec
mov ecx, 2
jmp 0x43a715
mov eax, 0x86b8ec
mov ecx, 3
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
lea edx, [esp + 0x120]
push edx
push dword [esp + 0x6c]
push dword [esp + 0x80]
push eax
push ecx
push dword [esp + 0x28]
push dword [esp + 0x134]
push dword [esp + 0x134]
push dword [esp + 0x38]
push edi
push esi
push dword [esp + 0x78]
call fcn.00555e90
add esp, 0x30
cmp dword [ebx + 4], 4
jl 0x43a777
lea eax, [esp + 0x120]
push eax
push dword [esp + 0x304]
call fcn.00557140
add esp, 8
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x2c0]
push dword [esp + 0x1c]
push eax
lea eax, [esp + 0x128]
push eax
push dword [esp + 0x74]
push dword [esp + 0x88]
push dword [esp + 0x84]
push ecx
push dword [esp + 0x90]
push dword [esp + 0x13c]
push dword [esp + 0x13c]
push dword [esp + 0x40]
mov eax, dword [esp + 0x68]
push eax
push edi
push esi
mov esi, dword [esp + 0x84]
push esi
call fcn.00564370
add esp, 0x3c
lea eax, [esp + 0x120]
push eax
push esi
call fcn.0055d9e0
add esp, 8
lea eax, [esp + 0x138]
push eax
push esi
call fcn.0055d9e0
add esp, 8
lea eax, [esp + 0x150]
push eax
push esi
call fcn.0055d9e0
add esp, 8
push dword [esp + 0x168]
push esi
call fcn.00554fb0
add esp, 8
mov dword [esp + 0x168], 0
push dword [esp + 0x170]
push esi
call fcn.00554fb0
add esp, 8
mov dword [esp + 0x170], 0
push dword [esp + 0x178]
push esi
call fcn.00554fb0
add esp, 8
mov dword [esp + 0x178], 0
push dword [esp + 0x180]
push esi
call fcn.00554fb0
add esp, 8
mov dword [esp + 0x180], 0
push dword [esp + 0x188]
push esi
mov esi, dword [esp + 0x44]
call fcn.00554fb0
add esp, 8
lea eax, [esi + 4]
mov ecx, dword [esp + 0x7c]
shr ecx, 3
cmp eax, ecx
mov eax, dword [esp + 0x1c]
jae 0x43a8f2
mov eax, dword [esp + 0x48]
movupd xmm0, xmmword [eax]
mov eax, dword [esp + 0x6c]
movupd xmmword [eax], xmm0
movzx eax, byte [esp + 0xdc]
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
movzx eax, byte [esp + 0xbc]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 1], al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push dword [esp + 0x1c]
push eax
push esi
push dword [esp + 0x24]
push edi
push dword [esp + 0x24]
push dword [esp + 0x8c]
call fcn.00567940
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov ecx, dword [esp + 0x7c]
mov edx, ecx
shr edx, 3
mov dword [esp + 0x20], edx
movzx edx, byte [eax + edx]
mov word [ebx + 0x120], dx
and cl, 7
mov byte [ebx + 0x122], cl
mov ecx, dword [ebx + 0x80]
mov edx, dword [ebx + 0x84]
mov dword [ebx + 0xc4], edx
mov dword [ebx + 0xc0], ecx
mov esi, dword [ebx + 0xc8]
xor edi, edi
mov eax, 0xbfffffff
cmp eax, esi
mov eax, ebx
mov ebx, 0
sbb ebx, dword [eax + 0xcc]
jae 0x43a963
mov ebx, esi
and ebx, 0x3fffffff
add esi, esi
sar esi, 1
and esi, 0xc0000000
add esi, ebx
add esi, 0x80000000
mov eax, 0xbfffffff
cmp eax, ecx
sbb edi, edx
mov edi, ecx
jae 0x43a98b
mov edi, ecx
and edi, 0x3fffffff
lea ebx, [ecx + ecx]
sar ebx, 1
and ebx, 0xc0000000
add edi, ebx
add edi, 0x80000000
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0xc8], ecx
mov dword [ebx + 0xcc], edx
cmp edi, esi
jae 0x43a9a9
mov dword [ebx + 0x150], 0
mov esi, ecx
or esi, edx
je 0x43a9e2
lea esi, [ecx - 1]
and esi, dword [esp + 0x18]
mov edi, ecx
xor edi, 1
or edi, edx
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + esi]
mov byte [ebx + 0x124], dl
je 0x43a9e2
add ecx, 0xfffffffe
and ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + ecx]
mov byte [ebx + 0x125], cl
mov dword [ebx + 0xb0], 0
mov dword [ebx + 0xb4], 0
mov eax, dword [esp + 0x6c]
movdqu xmm0, xmmword [eax]
mov eax, dword [esp + 0x48]
movdqu xmmword [eax], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov eax, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, str._v_v_f_f
mov ecx, 0xd
jmp 0x43a728