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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1c0
mov eax, dword [ebp + 8]
call 0x496e17
pop edi
movzx ebx, byte [eax]
cmp bl, 0x4b
jne 0x497cbc
mov dword [esp + 0x104], ecx
mov ecx, dword [eax + 4]
mov esi, dword [edx + 8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x54], ecx
mov ch, byte [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x120]
mov byte [esp + 0xa4], ch
cmp eax, 2
jne 0x49860a
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 8
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 8
mov dword [esp + 0xf8], 0
mov dword [esp + 0xd4], 0
mov ecx, dword [esi + 0xf0]
mov ebx, dword [esi + 0xc4]
mov edx, dword [esi + 0xc0]
lea eax, [esi + 0xa8]
add ecx, 8
test ebx, ebx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 0
je 0x4984cb
mov edx, dword [esi + 0xc8]
mov dword [esp + 0xa0], edi
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc4], 0
mov edi, edx
lea eax, [ecx + 0x60]
add ecx, 0x58
mov dword [esp + 0x1c], edx
and edi, 0xff00
mov dword [esp + 0x74], edi
mov edi, edx
shr edi, 0x10
cmp di, 5
mov dword [esp + 0x100], edi
mov edi, 0
cmovae ecx, eax
mov eax, dword [esi + 0xe8]
setae byte [esp + 0xdf]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x118], eax
mov eax, dword [esi + 0x100]
mov dword [esp + 0x40], eax
movzx eax, dh
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0xf8]
mov dword [esp + 0x88], eax
movzx eax, dl
mov edx, 8
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 0xec]
mov dword [esp + 0x108], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x114], eax
mov esi, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov edi, dword [esp + 0xa8]
mov dword [esp], 0
mov dword [esp + 0x20], 0
cmp byte [esi + 0x21], 8
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], edi
sete al
add ecx, dword [esi + 0x18]
add edx, edi
lea eax, [edx + eax*8]
sub eax, ecx
xor ecx, ecx
add eax, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
dec eax
mov dword [esp + 0x14], eax
lea eax, [edi + 1]
nop dword [eax]
movzx edx, byte [eax - 1]
cmp ecx, 0x3f
mov byte [esp + 4], dl
jne 0x497016
cmp dl, 2
jae 0x497cf4
mov ebx, edx
xor esi, esi
mov edi, 0
and bl, 0x7f
movzx ebx, bl
shld esi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
cmovne ebx, edi
or dword [esp + 0x20], esi
or dword [esp], ebx
test dl, dl
jns 0x49704e
add ecx, 7
inc eax
add dword [esp + 0x14], 0xffffffff
jb 0x497000
jmp 0x497d0a
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov edx, dword [esp]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x20]
or edx, ecx
je 0x49708e
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x10]
test ecx, ecx
jne 0x49709e
mov ecx, dword [esp]
dec ecx
cmp ecx, dword [eax + 8]
jae 0x49709e
imul esi, ecx, 0x68
add esi, dword [eax + 4]
jmp 0x497175
mov edi, dword [esp + 8]
dec dword [esp + 0xb8]
jmp 0x497955
mov edx, dword [eax + 0xc]
mov cl, 0x12
test edx, edx
je 0x499928
mov eax, dword [eax + 0x10]
mov dword [esp + 0xe8], eax
movzx eax, word [edx + 0x4d6]
mov dword [esp + 0x18], edx
mov ecx, 0xffffffff
lea edx, [eax*8]
mov dword [esp + 0xd8], eax
nop word cs:[eax + eax]
nop dword [eax]
test edx, edx
je 0x49713c
mov eax, dword [esp + 0x18]
mov edi, dword [esp]
mov ebx, dword [eax + ecx*8 + 0xc]
mov esi, dword [eax + ecx*8 + 8]
xor eax, eax
mov dword [esp + 0x14], ebx
xor ebx, dword [esp + 0x20]
mov dword [esp + 0xc], esi
xor esi, edi
or esi, ebx
mov esi, dword [esp + 0x20]
setne al
cmp edi, dword [esp + 0xc]
sbb esi, dword [esp + 0x14]
mov esi, 0xff
cmovb eax, esi
inc ecx
add edx, 0xfffffff8
cmp al, 1
je 0x4970e0
mov edx, dword [esp + 0x10]
movzx eax, al
test eax, eax
je 0x49716a
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x18]
jmp 0x49714e
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xe8]
sub eax, 1
jb 0x497e6a
mov edx, dword [edx + ecx*4 + 0x4d8]
mov dword [esp + 0xe8], eax
jmp 0x4970b5
mov esi, dword [esp + 0x18]
imul eax, ecx, 0x68
lea esi, [esi + eax + 0x58]
cmp byte [esi + 0x62], 1
mov edi, dword [esp + 8]
jne 0x497186
inc dword [esp + 0xb8]
cmp word [esi + 0x60], 0x2e
jne 0x49719a
cmp dword [esi], 0
je 0x4971ae
mov ebx, dword [esi + 0xc]
mov esi, dword [esi + 8]
jmp 0x4971bd
cmp dword [esi], 0
je 0x497917
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 8]
jmp 0x497926
mov ebx, dword [esi + 4]
cmp ebx, 5
ja 0x499deb
add esi, 8
xor eax, eax
test ebx, ebx
je 0x497c5a
shl ebx, 4
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0xe8], 0
add ebx, esi
mov dword [esp + 0x20], ebx
jmp 0x497244
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x14], 0
mov dword [esp + 4], 1
mov dword [esp + 0xc0], eax
mov dword [esp + 0xbc], ecx
mov edx, dword [esp + 0x10]
cmp esi, ebx
je 0x497975
movsd xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0xb0]
add esi, 0x10
movq qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
lea ecx, [esp + 0x120]
lea edi, [esp + 0x58]
lea edx, [esp + 0xa8]
push edi
push dword [eax + 0x20]
call fcn.0049f5f0
add esp, 8
cmp dword [esp + 0x74], 0x800
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
jne 0x497444
xor eax, 0x2e
or eax, ecx
je 0x497e19
movzx eax, word [esp + 0x130]
cmp eax, 0x11
je 0x4977d8
mov edi, dword [esp + 8]
cmp eax, 0x12
je 0x4975ea
cmp eax, 0x55
jne 0x497238
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x49778e
cmp ecx, 0x18
jne 0x4975be
mov ecx, dword [esp + 0x54]
mov edi, dword [ecx + 0x60]
mov ecx, dword [ecx + 0x64]
sub ecx, dword [esp + 0x40]
mov dword [esp + 0xd8], ecx
jb 0x497e8a
mul dword [esp + 0x48]
mov dword [esp], 0
jo 0x499aba
mov ecx, dword [esp + 0xd8]
add edi, dword [esp + 0x40]
sub ecx, eax
jb 0x497e8a
add eax, edi
cmp ecx, 8
jb 0x499abe
cmp dword [eax + 4], 0
jne 0x499b05
mov eax, dword [eax]
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
je 0x497a15
movsd xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0xb0]
movq qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
lea ebx, [esp + 0x58]
lea ecx, [esp + 0x120]
lea edx, [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x24]
push dword [eax + 0x20]
call fcn.0049f5f0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x497e19
movzx eax, word [esp + 0x130]
cmp eax, 0x55
jne 0x4975ca
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x49777e
mul dword [esp + 0x48]
jo 0x499aba
mov ecx, dword [esp + 0xd8]
sub ecx, eax
jb 0x497e8a
add eax, edi
cmp ecx, 8
jb 0x499abe
cmp dword [eax + 4], 0
jne 0x499b05
mov eax, dword [eax]
add esi, 0x10
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
jne 0x49736a
jmp 0x497a15
xor eax, 0x2e
or eax, ecx
je 0x497e19
movzx eax, word [esp + 0x130]
cmp eax, 0x11
je 0x4977d8
mov edi, dword [esp + 8]
cmp eax, 0x12
je 0x4975ea
cmp eax, 0x55
jne 0x497238
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x49778e
cmp ecx, 0x18
jne 0x4975be
mov ecx, dword [esp + 0x54]
mov edi, dword [ecx + 0x60]
mov ecx, dword [ecx + 0x64]
sub ecx, dword [esp + 0x40]
mov dword [esp + 0xd8], ecx
jb 0x497e8a
mul dword [esp + 0x48]
mov dword [esp], 0
jo 0x499954
mov ecx, dword [esp + 0xd8]
add edi, dword [esp + 0x40]
sub ecx, eax
jb 0x497e8a
add eax, edi
cmp ecx, 4
jb 0x4999aa
mov eax, dword [eax]
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
je 0x497a15
movsd xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0xb0]
movq qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
lea ebx, [esp + 0x58]
lea ecx, [esp + 0x120]
lea edx, [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0x24]
push dword [eax + 0x20]
call fcn.0049f5f0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x497e19
movzx eax, word [esp + 0x130]
cmp eax, 0x55
jne 0x4975ca
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x49777e
mul dword [esp + 0x48]
jo 0x499954
mov ecx, dword [esp + 0xd8]
sub ecx, eax
jb 0x497e8a
add eax, edi
cmp ecx, 4
jb 0x4999aa
add esi, 0x10
jmp 0x4974f2
mov dword [esp], 0
jmp 0x497238
cmp eax, 0x11
je 0x4977ce
mov edi, dword [esp + 8]
cmp eax, 0x12
jne 0x4978ff
add esi, 0x10
mov dword [esp], 1
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov eax, dword [esp + 0x78]
test al, 0x3f
je 0x4976d7
mov edx, dword [esp + 0x10]
cmp eax, 7
je 0x4976a3
cmp eax, 0xc
jne 0x49723c
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub edi, dword [esp + 0x88]
jb 0x497e71
mov eax, dword [esp + 0x80]
mul dword [esp + 0xc8]
jo 0x49995b
add ecx, dword [esp + 0x88]
mov edx, edi
sub edx, eax
jb 0x497e71
movzx ebx, byte [esp + 0x1c]
dec ebx
cmp ebx, 7
ja 0x499b89
mov ebx, dword [ebx*4 + 0x49a104]
add ecx, eax
add ebx, dword [esp + 0xa0]
jmp ebx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], ecx
jmp 0x49723c
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], ecx
jmp 0x497238
add esi, 0x10
cmp ecx, 0x16
jne 0x49790e
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x54]
mov ebx, 0
mov edx, dword [esp + 0x10]
mov dword [esp], 1
cmp byte [ecx + 0x70], 0
mov ecx, 0
cmovne ebx, dword [esp + 0x40]
cmp word [esp + 0x100], 5
cmovae ebx, ecx
add ebx, eax
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x20]
jmp 0x49723c
add esi, 0x10
mov dword [esp], 1
mov edi, dword [esp + 8]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov eax, dword [esp + 0x78]
test al, 0x3f
je 0x49720c
mov edx, dword [esp + 0x10]
cmp eax, 0xc
jne 0x49723c
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub edi, dword [esp + 0x88]
jb 0x497e71
mov eax, dword [esp + 0x80]
mul dword [esp + 0xc8]
jo 0x49995b
add ecx, dword [esp + 0x88]
mov edx, edi
sub edx, eax
jb 0x497e71
movzx ebx, byte [esp + 0x1c]
dec ebx
cmp ebx, 7
ja 0x499b89
mov ebx, dword [ebx*4 + 0x49a124]
add ecx, eax
add ebx, dword [esp + 0xa0]
jmp ebx
add esi, 0x10
mov dword [esp], 1
jmp 0x497238
mov edi, dword [esp + 8]
jmp 0x497238
mov eax, dword [esi + 4]
cmp eax, 6
jae 0x499def
add esi, 8
lea ecx, [esp + 0x120]
lea edx, [esp + 0xa8]
push eax
push esi
mov eax, dword [esp + 0x4c]
push dword [eax + 0x20]
call fcn.0049ed50
add esp, 0xc
movzx eax, byte [esp + 0x120]
cmp al, 0x4b
jne 0x49992d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xac]
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 0xc], eax
jne 0x496fa2
jmp 0x497e3c
cmp dword [esp], 0
jne 0x497a19
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 4]
or eax, dword [esp + 0xc]
je 0x497b9c
mov eax, ebx
or eax, esi
je 0x497b9c
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xbc]
cmp dword [esp + 0xc0], eax
sbb ecx, dword [esp + 0xe0]
jae 0x497c58
cmp edi, dword [esp + 0xcc]
jne 0x4979e6
lea ecx, [esp + 0xcc]
mov edx, edi
call fcn.0049dd50
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
mov esi, dword [esp + 0xc0]
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xe0]
mov dword [edx + eax*8], esi
mov esi, dword [esp + 0xe4]
mov dword [edx + eax*8 + 4], ecx
mov dword [edx + eax*8 + 0xc], ebx
jmp 0x497c32
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0xec]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, edx
jb 0x499bcc
mov esi, dword [esp + 0x54]
add eax, edx
mov edx, dword [esp + 0x88]
mov ebx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x124], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], esi
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x1c]
mov word [esp + 0x134], dx
mov edx, dword [esp + 0x100]
mov word [esp + 0x136], dx
mov dword [esp + 0x138], eax
movzx eax, byte [esp + 0xdf]
mov dword [esp + 0x13c], ecx
mov byte [esp + 0x140], al
xor eax, eax
mov byte [esp + 0x143], 0
mov word [esp + 0x141], 0
mov bh, al
lea ecx, [esp + 0x58]
lea edx, [esp + 0x120]
call fcn.004a1a60
mov eax, dword [esp + 0x58]
movdqu xmm1, xmmword [esp + 0x60]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x497b78
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
sbb eax, edx
jae 0x497ace
cmp edi, dword [esp + 0xcc]
movdqa xmmword [esp + 0x20], xmm1
jne 0x497b48
lea ecx, [esp + 0xcc]
mov edx, edi
call fcn.0049dd50
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
jmp 0x497b4c
mov edx, dword [esp + 0x10]
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, dword [esp + 0xc4]
lea eax, [edi + edi*2]
inc edi
mov dword [esp + 0x10], edx
mov bh, 1
movdqu xmmword [edx + eax*8], xmm0
mov dword [edx + eax*8 + 0x10], ecx
mov dword [esp + 0xd4], edi
jmp 0x497ace
cmp eax, 2
jne 0x497b93
movd ebx, xmm1
cmp bl, 0x4b
jne 0x499be0
mov edx, dword [esp + 0x10]
jmp 0x497c5f
mov edx, dword [esp + 0x10]
jmp 0x497c5c
mov ecx, dword [esp + 0xe8]
xor eax, eax
mov ah, al
or dword [esp + 0x44], ecx
je 0x497c50
or ebx, esi
je 0x497c50
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xbc]
mov esi, eax
mov edi, ecx
add esi, dword [esp + 0x110]
adc edi, dword [esp + 0x10c]
cmp eax, esi
mov eax, ecx
sbb eax, edi
jae 0x497c54
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0xcc]
jne 0x497c10
mov edx, dword [esp + 8]
lea ecx, [esp + 0xcc]
call fcn.0049dd50
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xbc]
lea eax, [ecx + ecx*2]
mov dword [edx + eax*8 + 4], ebx
mov ebx, dword [esp + 0xc0]
mov dword [edx + eax*8], ebx
mov dword [edx + eax*8 + 0xc], edi
mov edi, ecx
mov dword [edx + eax*8 + 8], esi
mov ecx, dword [esp + 0xc4]
mov bh, 1
inc edi
and bh, 1
mov dword [edx + eax*8 + 0x10], ecx
mov dword [esp + 0xd4], edi
jmp 0x497c5f
mov ebx, eax
jmp 0x497c5c
mov edi, dword [esp + 8]
xor eax, eax
mov bh, al
and bh, 1
test bh, 1
je 0x497959
mov esi, edx
mov edx, dword [esp + 0xc4]
cmp edx, dword [esp + 0xf0]
jne 0x497c8d
lea ecx, [esp + 0xf0]
call fcn.004a3550
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xf4]
mov ebx, dword [esp + 0x4c]
lea ecx, [edx + edx*4]
inc edx
mov dword [esp + 0xc4], edx
mov dword [eax + ecx*8], ebx
mov dword [eax + ecx*8 + 8], 2
mov dword [esp + 0xf8], edx
mov edx, esi
jmp 0x497959
movzx edx, byte [eax + 3]
mov byte [ecx + 0xb], dl
movzx edx, word [eax + 1]
mov word [ecx + 9], dx
movzx edx, word [eax + 9]
mov word [ecx + 0x11], dx
movzx edx, byte [eax + 0xb]
mov byte [ecx + 0x13], dl
mov edx, dword [eax + 4]
mov byte [ecx + 8], bl
mov dword [ecx + 0xc], edx
mov dh, byte [eax + 8]
mov eax, dword [eax + 0xc]
mov byte [ecx + 0x10], dh
mov dword [ecx + 0x14], eax
jmp 0x498b03
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x14]
mov cl, 6
mov dword [esp + 0xac], eax
jmp 0x497d28
mov edx, dword [esp + 0x18]
xor eax, eax
mov cl, 0x13
add edx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], 0
mov ch, byte [esp + 4]
mov byte [esp + 0x60], cl
mov byte [esp + 0x61], ch
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
cmp dword [esp + 0xcc], 0
mov dword [esp + 0x58], 1
je 0x497d6a
push dword [esp + 0xd0]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
test edi, edi
je 0x497dc9
lea ebx, [esi + 0x18]
jmp 0x497d96
add ebx, 0x28
dec edi
je 0x497dc9
cmp dword [ebx - 0x10], 0
jne 0x497d90
cmp dword [ebx - 8], 0
je 0x497db2
push dword [ebx - 0xc]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [ebx], 0
je 0x497d90
push dword [ebx - 4]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x497d90
cmp dword [esp + 0xf0], 0
je 0x497de1
push esi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x50]
lea esi, [eax + 0x120]
cmp dword [esi], 2
jne 0x4985f4
movsd xmm0, qword [esp + 0x58]
movq xmm1, qword [esp + 0x60]
movsd qword [esi], xmm0
movsd xmm0, qword [esp + 0x68]
movq qword [esi + 8], xmm1
movsd qword [esi + 0x10], xmm0
jmp 0x4985fd
movsd xmm0, qword [esp + 0x128]
movq xmm1, qword [esp + 0x130]
movq qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
jmp 0x497d44
mov eax, dword [esp + 0xd0]
cmp edi, 0x15
mov dword [esp + 0x40], eax
jae 0x497e91
cmp edi, 1
jbe 0x4984cb
mov ecx, dword [esp + 0x40]
mov edx, edi
push 1
call fcn.0049ec10
add esp, 4
jmp 0x4984cb
mov cl, 0x12
jmp 0x497d28
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], 0
mov al, 0x13
jmp 0x49995d
mov bl, 0x13
jmp 0x499b26
lea eax, [edi*4]
and eax, 0xfffffff8
lea ecx, [eax + eax*2]
movzx eax, byte [0x597110]
mov edx, 8
call fcn.00429bd0
test eax, eax
mov dword [esp + 0x20], eax
je 0x499e67
movzx eax, byte [0x597110]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00429bd0
test eax, eax
je 0x499e80
mov esi, eax
mov eax, dword [esp + 0x40]
xor ebx, ebx
mov dword [esp + 0xc8], 0x10
lea ecx, [eax + 0x30]
add eax, 0xffffffe8
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0xa0], ecx
jmp 0x497f12
mov ebx, 2
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x4984ac
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], esi
mov esi, edi
mov edx, eax
sub esi, eax
lea eax, [eax + eax*2]
mov dword [esp + 4], edx
cmp esi, 2
mov dword [esp], esi
lea ecx, [ecx + eax*8]
mov dword [esp + 0xc], ecx
jae 0x497f87
mov eax, dword [esp]
mov ecx, edi
mov esi, ecx
sub esi, edx
jb 0x499d41
cmp ecx, edi
ja 0x499d41
jae 0x497fd6
cmp eax, 0xa
jae 0x497fd6
lea esi, [edx + 0xa]
cmp esi, edi
cmovae esi, edi
mov dword [esp + 0x1c], esi
sub esi, edx
jb 0x499d80
cmp eax, 1
adc eax, 0
mov ecx, dword [esp + 0xc]
mov edx, esi
push eax
call fcn.0049ec10
add esp, 4
mov edx, dword [esp + 4]
jmp 0x497fda
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x88], eax
cmp edx, eax
mov eax, dword [esp + 0x10]
sbb eax, esi
jae 0x498326
cmp dword [esp], 2
mov eax, dword [esp + 0x44]
jne 0x498341
mov edx, dword [esp + 4]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x4983d8
mov dword [esp + 0x1c], ecx
cmp ebx, dword [esp + 0xc8]
jne 0x498046
movzx eax, byte [0x597110]
mov ecx, ebx
shl ecx, 4
mov edx, 4
call fcn.00429bd0
test eax, eax
je 0x499d8a
mov ecx, eax
lea eax, [ebx + ebx]
mov dword [esp + 0xc8], eax
lea eax, [ebx*8]
push eax
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
push ebx
push ecx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push ebx
mov ebx, dword [esp + 0x1c]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
mov edx, dword [esp + 4]
jmp 0x49804a
mov eax, dword [esp + 0x14]
mov dword [eax + ebx*8], esi
mov dword [eax + ebx*8 + 4], edx
inc ebx
mov esi, eax
cmp ebx, 2
jb 0x497f06
mov dword [esp + 0x14], esi
jmp 0x4980bf
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edi, dword [esp + 0x18]
sub esi, eax
lea ebx, [edi - 1]
push esi
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x44]
add eax, dword [esp + 0xc]
mov dword [esi + ecx*8 + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edi, dword [esp + 8]
cmp ebx, 1
jbe 0x498310
mov eax, dword [esi + ebx*8 - 8]
mov ecx, dword [esi + ebx*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x498110
mov edx, dword [esi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x498110
cmp ebx, 2
jbe 0x497f01
lea ecx, [ebx - 3]
mov dword [esp + 4], ecx
mov ecx, dword [esi + ebx*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x4982fb
cmp ebx, 3
jbe 0x498493
mov esi, dword [esp + 0x14]
add edx, ecx
cmp dword [esi + ebx*8 - 0x20], edx
jbe 0x498120
jmp 0x49849c
cmp ebx, 3
jb 0x498128
lea ecx, [ebx - 3]
mov dword [esp + 4], ecx
mov ecx, dword [esi + ebx*8 - 0x18]
mov edi, dword [esp + 4]
cmp ecx, eax
jb 0x49812b
lea edi, [ebx - 2]
cmp ebx, edi
jbe 0x499caf
lea eax, [edi + 1]
mov dword [esp + 0x18], ebx
cmp ebx, eax
mov ebx, dword [esp + 8]
jbe 0x499c9d
mov eax, dword [esi + edi*8 + 8]
mov edx, dword [esi + edi*8 + 0xc]
mov ecx, dword [esi + edi*8 + 4]
add edx, eax
mov esi, edx
sub esi, ecx
mov dword [esp], esi
jb 0x499cec
cmp edx, ebx
mov dword [esp + 0x10], eax
ja 0x499cfe
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
mov dword [esp + 4], edi
mov esi, dword [eax + edi*8]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + eax*8]
lea eax, [esi + esi*2]
mov dword [esp + 0xc], esi
lea ebx, [ecx + eax*8]
lea eax, [edx + edx*2]
mov edx, dword [esp]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
sub edx, esi
cmp edx, esi
lea eax, [eax + edi*8]
mov dword [esp + 0x44], eax
jae 0x498265
lea eax, [edx*8]
mov dword [esp], ecx
mov dword [esp + 0x88], edx
lea esi, [eax + eax*2]
push esi
push ebx
mov edi, dword [esp + 0x28]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, edi
cmp dword [esp + 0xc], 0
jle 0x498063
cmp dword [esp + 0x88], 0
jle 0x498063
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx*8]
nop dword [eax + eax]
mov ecx, dword [esi - 0x18]
mov edx, dword [esi - 0x14]
mov edi, 0
cmp ecx, dword [ebx - 0x18]
sbb edx, dword [ebx - 0x14]
setb dl
setb cl
adc edi, 0xffffffff
movzx edx, dl
neg edx
test cl, cl
lea edx, [edx + edx*2]
lea ebx, [ebx + edx*8]
lea edx, [edi + edi*2]
lea esi, [esi + edx*8]
mov ecx, esi
cmovne ecx, ebx
cmp ebx, dword [esp]
movsd xmm1, qword [ecx + 8]
movq xmm0, qword [ecx]
movsd qword [eax + 8], xmm1
movq xmm1, qword [ecx + 0x10]
movq qword [eax], xmm0
movq qword [eax + 0x10], xmm1
jbe 0x498063
add eax, 0xffffffe8
cmp esi, dword [esp + 0x20]
ja 0x498200
jmp 0x498063
lea eax, [esi*8]
lea esi, [eax + eax*2]
push esi
mov edi, ecx
push ecx
push dword [esp + 0x28]
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x18]
add esp, 0xc
add esi, dword [esp + 0x20]
test eax, eax
jle 0x4982f0
cmp dword [esp], eax
jle 0x4982f0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x20]
nop
mov edx, dword [ebx]
cmp edx, dword [eax]
mov edx, dword [ebx + 4]
sbb edx, dword [eax + 4]
mov edx, eax
cmovb edx, ebx
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movsd qword [edi + 8], xmm1
movq xmm1, qword [edx + 0x10]
setae dl
movq qword [edi], xmm0
movzx edx, dl
lea edx, [edx + edx*2]
lea eax, [eax + edx*8]
setb dl
movq qword [edi + 0x10], xmm1
add edi, 0x18
cmp eax, esi
jae 0x4982f4
movzx edx, dl
lea edx, [edx + edx*2]
lea ebx, [ebx + edx*8]
cmp ebx, ecx
jb 0x4982a0
jmp 0x4982f4
mov eax, dword [esp + 0x20]
mov ecx, edi
jmp 0x498069
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp ecx, eax
jae 0x498128
jmp 0x49812b
mov ebx, 1
mov eax, dword [esp + 0x1c]
cmp eax, edi
jb 0x497f12
jmp 0x4984ac
cmp dword [esp], 2
mov eax, dword [esp + 0x44]
jne 0x498378
mov edx, dword [esp + 4]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x497f3b
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
lea ebx, [ecx + eax*8]
mov eax, 2
mov ecx, edx
mov edi, esi
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
cmp esi, edi
mov edi, edx
sbb edi, ecx
jae 0x4983b0
inc eax
add ebx, 0x18
cmp dword [esp], eax
jne 0x49835c
jmp 0x4983ad
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
lea ebx, [ecx + eax*8]
mov eax, 2
mov edi, edx
mov ecx, esi
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
cmp esi, ecx
mov ecx, edx
sbb ecx, edi
jb 0x4983b0
inc eax
add ebx, 0x18
cmp dword [esp], eax
jne 0x498393
mov eax, dword [esp]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x74], esi
lea ecx, [eax + edx]
sbb dword [esp + 0x10], edi
mov edi, dword [esp + 8]
jae 0x497f3b
cmp edx, ecx
ja 0x499e19
cmp ecx, edi
ja 0x499e08
cmp eax, 2
jb 0x497f3b
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov esi, dword [esp + 0xc]
shr eax, 1
mov dword [esp], ecx
add ecx, edx
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*8]
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x128], xmm1
movsd qword [esp + 0x120], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
movsd xmm0, qword [esp + 0x130]
movsd qword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x120]
movq xmm1, qword [esp + 0x128]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
add edx, 0xffffffe8
dec eax
jne 0x49840c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov eax, dword [esp]
jmp 0x497f3b
mov esi, dword [esp + 0x14]
mov ebx, 3
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 8]
cmp eax, edi
jb 0x497f12
push esi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x20]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0xf8]
mov edi, dword [esp + 0xf4]
cmp dword [esp + 0xf0], ebx
jbe 0x498560
test ebx, ebx
je 0x49857f
lea eax, [ebx*8]
lea esi, [eax + eax*4]
push esi
push edi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp + 0x20], eax
je 0x499d30
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
cmp dword [esp + 0xcc], esi
jbe 0x49857b
test esi, esi
je 0x4985b2
lea eax, [esi*8]
lea eax, [eax + eax*2]
mov dword [esp], eax
push eax
push edi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x4985c5
mov edx, dword [esp]
mov ecx, 8
call fcn.00429f40
jmp 0x499e97
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
cmp dword [esp + 0xcc], esi
ja 0x498526
mov eax, edi
jmp 0x4985c5
push edi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x20], 8
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
cmp dword [esp + 0xcc], esi
ja 0x498526
jmp 0x49857b
push edi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x50]
lea esi, [eax + 0x120]
cmp dword [esi], 2
je 0x497df4
lea ecx, [esp + 0x58]
call fcn.004a35f0
mov eax, dword [esi]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x50]
test eax, eax
je 0x498659
movzx eax, byte [esi + 0x128]
mov ebx, dword [esi + 0x12c]
cmp al, 0x4b
je 0x498661
mov ah, byte [esi + 0x12b]
mov edi, dword [esp + 0x104]
mov ecx, dword [esi + 0x134]
mov edx, dword [esi + 0x130]
mov byte [edi + 0xb], ah
movzx esi, word [esi + 0x129]
mov word [edi + 9], si
mov byte [edi + 8], al
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ecx
mov ecx, edi
jmp 0x498b03
add esi, 0x124
mov ebx, esi
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [ebx + 0xc]
test edx, edx
mov dword [esp + 0x20], eax
mov dword [esp], ecx
je 0x498707
mov eax, dword [ebx + 8]
xor edi, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
jmp 0x4986b5
mov ecx, edi
mov eax, dword [esp + 8]
mov esi, dword [esp]
cmp dword [esp + 0x20], eax
sbb esi, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
cmovb esi, edx
cmovae edi, ecx
mov edx, esi
mov dword [esp + 0xc], esi
sub edx, edi
jbe 0x498707
mov ebx, dword [esp + 0x18]
shr edx, 1
add edx, edi
lea ecx, [edx + edx*2]
mov esi, dword [ebx + ecx*8]
mov eax, dword [ebx + ecx*8 + 4]
mov dword [esp + 8], esi
cmp dword [esp + 0x20], esi
mov esi, dword [esp]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + ecx*8 + 0xc]
sbb esi, dword [esp + 0x14]
mov esi, dword [ebx + ecx*8 + 8]
mov dword [esp + 4], eax
jb 0x4986f5
cmp dword [esp + 0x20], esi
mov ebx, dword [esp]
sbb ebx, dword [esp + 4]
jb 0x49871b
cmp dword [esp + 0x20], esi
mov ecx, dword [esp]
sbb ecx, dword [esp + 4]
jb 0x498690
lea ecx, [edx + 1]
jmp 0x498692
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x3c], 0
jmp 0x498949
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ecx*8 + 0x10]
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 4]
cmp ecx, edx
jae 0x499bd6
mov edx, dword [eax]
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + ecx*8 + 8]
lea esi, [edx + ecx*8 + 8]
mov dword [esp + 0x40], esi
cmp eax, 2
jne 0x498909
mov edi, dword [edx + ecx*8]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
movzx eax, byte [edx + 0xc9]
mov esi, dword [edx + 0xcc]
mov ebx, edi
mov dword [esp + 0x4c], edi
cmp al, 8
mov byte [esp + 8], al
mov dword [esp + 0x20], esi
sete cl
lea eax, [esi + ecx*8 + 4]
mov esi, dword [edx + 0xc4]
mov dword [esp], eax
sub eax, esi
sub edi, eax
lea eax, [edx + 0xa8]
mov edx, dword [edx + 0xf0]
mov dword [esp + 4], eax
lea eax, [edx + 8]
mov dword [esp + 0xc], eax
jb 0x498898
mov eax, esi
sub eax, edi
jbe 0x498898
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0xc0]
add edi, edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 4]
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], ecx
lea ecx, [edx + esi]
sub esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], 0
sub esi, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov ecx, eax
not ecx
add esi, edx
xor edx, edx
mov dword [esp + 0x50], ecx
xor ecx, ecx
nop dword [eax + eax]
movzx eax, byte [esi + eax]
cmp ecx, 0x3f
mov dword [esp + 0x20], eax
jne 0x498831
cmp al, 2
jae 0x4988ae
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, edx
mov edx, 0
mov ebx, eax
xor eax, eax
and bl, 0x7f
movzx ebx, bl
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
cmovne ebx, edx
mov edx, edi
mov edi, esi
or edi, eax
or edx, ebx
cmp byte [esp + 0x20], 0
jns 0x498bf1
mov ebx, dword [esp]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
add ecx, 7
dec ebx
inc esi
cmp eax, ebx
mov dword [esp], ebx
jne 0x498820
mov bl, 0x13
mov dword [esp + 0x4c], 0
mov dword [esp + 4], 0
jmp 0x4988b8
xor esi, esi
mov bl, 0x38
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], 0
jmp 0x4988b8
mov bl, 6
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
cmp eax, 2
jne 0x498909
mov eax, 1
mov ecx, dword [esp + 0x40]
shl esi, 0x10
mov dword [ecx], eax
movzx eax, byte [esp + 0x20]
mov dword [ecx + 4], edi
mov edi, dword [esp + 4]
shl eax, 8
or eax, esi
mov esi, ecx
movzx ecx, bl
or ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [esi + 0xc], edi
mov edi, dword [esp + 0x4c]
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
mov eax, dword [esi]
test eax, eax
je 0x49892b
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x9c]
movzx eax, byte [esi + 8]
mov ebx, dword [esi + 0xc]
cmp al, 0x4b
jne 0x498b0d
mov eax, ebx
jmp 0x498939
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x9c]
add eax, 4
mov esi, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], esi
mov dword [esp], edx
mov esi, dword [ecx + 8]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp]
mov dword [esp + 0x9c], 2
mov eax, dword [esi + 0x10]
add edx, 1
adc ecx, 0
xor eax, 0x2f
or eax, dword [esi + 0x14]
je 0x498d2d
mov eax, dword [esi + 0x108]
mov dword [esp + 0x74], ecx
cmp eax, 2
jne 0x4989eb
mov ebx, edx
lea edi, [esi + 0x108]
lea edx, [esi + 0x10]
lea ecx, [esp + 0x120]
call fcn.0049a850
lea ecx, [esp + 0x58]
mov edx, esi
push dword [esp + 0x54]
lea eax, [esp + 0x124]
push eax
call fcn.0049ac20
add esp, 8
cmp dword [esi + 0x108], 2
jne 0x4989de
movsd xmm0, qword [esp + 0x58]
movq xmm1, qword [esp + 0x60]
movsd qword [edi], xmm0
movsd xmm0, qword [esp + 0x68]
movq qword [edi + 8], xmm1
movsd qword [edi + 0x10], xmm0
jmp 0x4989e7
lea ecx, [esp + 0x58]
call fcn.0049d5c0
mov eax, dword [edi]
mov edx, ebx
lea ecx, [esi + 0x110]
add esi, 0x10c
test eax, eax
cmovne esi, ecx
je 0x498a0f
movzx ecx, byte [esi]
mov eax, dword [esi + 4]
cmp ecx, 0x4b
jne 0x498ad4
mov esi, eax
test esi, esi
je 0x498d2d
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor eax, eax
mov ebx, 0
mov dword [esp + 0xa4], esi
test edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], edi
je 0x498b3d
xor edi, edi
mov ebx, edx
jmp 0x498a7b
mov dword [esp + 8], edi
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 4]
mov ecx, dword [esp]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], eax
sbb ecx, esi
cmovae edi, dword [esp + 8]
cmovb edx, ebx
mov ebx, edx
sub ebx, edi
jbe 0x498b29
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
shr ebx, 1
add ebx, edi
lea esi, [ebx + ebx*2]
mov eax, dword [edx + esi*8 + 8]
mov ecx, dword [edx + esi*8 + 0xc]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x20], eax
mov eax, dword [esp]
mov dword [esp + 4], ecx
sbb eax, ecx
mov eax, dword [edx + esi*8 + 0x14]
mov esi, dword [edx + esi*8 + 0x10]
jb 0x498ac0
mov dword [esp + 8], ebx
cmp dword [esp + 0x20], esi
mov ebx, dword [esp]
sbb ebx, eax
mov ebx, dword [esp + 8]
jb 0x498b33
cmp dword [esp + 0x20], esi
mov ecx, dword [esp]
sbb ecx, eax
jb 0x498a50
lea eax, [ebx + 1]
mov dword [esp + 8], eax
jmp 0x498a54
movzx edx, byte [esi + 3]
mov edi, esi
movzx esi, word [esi + 1]
mov ebx, dword [esp + 0x104]
shl esi, 8
shl edx, 0x18
or edx, esi
mov esi, dword [edi + 0xc]
or edx, ecx
mov ecx, dword [edi + 8]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x10], ecx
mov ecx, ebx
mov eax, 1
jmp 0x498d5c
mov ah, byte [esi + 0xb]
mov edi, dword [esp + 0x104]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov byte [edi + 0xb], ah
movzx esi, word [esi + 9]
jmp 0x498642
test edi, edi
jne 0x498d2d
xor ebx, ebx
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
xor eax, eax
lea ecx, [ebx + ebx*2]
cmp ebx, edx
mov dword [esp + 0x50], ecx
jae 0x498c4b
mov eax, dword [edi + ecx*8 + 4]
test eax, eax
je 0x498bed
mov ecx, dword [edi + ecx*8]
xor esi, esi
mov edx, eax
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ecx
jmp 0x498b7f
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 4]
mov eax, edx
sub eax, esi
jbe 0x498be2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
shr eax, 1
mov dword [esp + 4], esi
add eax, esi
mov ecx, eax
lea eax, [eax + eax*2]
mov ebx, dword [edx + eax*8 + 4]
mov edi, dword [edx + eax*8]
mov eax, dword [esp]
mov edx, ebx
mov esi, edi
xor edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
xor esi, edx
or esi, dword [esp + 0x14]
je 0x498c39
cmp edx, edi
mov edx, ecx
sbb eax, ebx
jb 0x498bc4
mov edx, dword [esp + 0xc]
cmp edi, dword [esp + 0x20]
sbb ebx, dword [esp]
jae 0x498b69
inc ecx
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov esi, ecx
mov ecx, dword [esp + 0x50]
mov eax, edx
sub eax, esi
ja 0x498b7f
mov edx, dword [esp + 0x44]
sub esi, 1
mov eax, esi
jae 0x498c4b
xor eax, eax
jmp 0x498c4b
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
add esi, dword [esp]
lea eax, [ecx + eax + 1]
mov dword [esp + 0x58], eax
mov eax, edx
or eax, edi
mov dword [esp + 0x5c], esi
je 0x499dd7
mov eax, dword [esp + 0x10]
test edi, edi
jne 0x498d66
lea ecx, [edx - 1]
cmp ecx, dword [eax + 0x10]
jae 0x498d66
imul ecx, ecx, 0x68
add ecx, dword [eax + 0xc]
jmp 0x498e15
mov eax, ecx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
cmp ebx, edx
jae 0x498d2d
mov dword [esp], eax
mov eax, dword [edi + ecx*8 + 0xc]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x20]
cmp dword [edi + eax*8 + 8], ecx
mov ecx, dword [esp + 0x50]
sbb esi, dword [esp + 0x74]
jae 0x498d2d
mov eax, dword [esp]
cmp eax, dword [edi + ecx*8 + 4]
jae 0x498ccc
lea ecx, [edi + ecx*8]
mov esi, dword [ecx]
mov edx, dword [esp + 0x54]
lea edi, [eax + eax*2]
mov eax, dword [esi + edi*8 + 4]
cmp dword [esi + edi*8], edx
sbb eax, dword [esp + 0x74]
jae 0x498d2d
mov eax, dword [esi + edi*8 + 8]
mov ebx, dword [esp + 0xa4]
cmp dword [ebx + 4], eax
jbe 0x499197
mov ecx, dword [ebx]
lea edx, [eax + eax*2]
mov eax, dword [ecx + edx*4 + 4]
mov ecx, dword [ecx + edx*4 + 8]
mov dword [esp + 0x20], eax
jmp 0x49919f
lea eax, [ebx + 1]
cmp eax, edx
je 0x498d2d
cmp eax, edx
lea eax, [eax + eax*2]
mov esi, ecx
lea ecx, [edi + eax*8]
mov eax, 0
cmovae ecx, eax
lea eax, [edi + esi*8 + 0x30]
mov edi, edx
add ebx, 2
neg edi
mov dword [esp + 0x20], edi
mov esi, ebx
mov ebx, dword [esp + 0x54]
mov edi, dword [ecx + 0xc]
cmp dword [ecx + 8], ebx
sbb edi, dword [esp + 0x74]
jae 0x498d2d
cmp dword [ecx + 4], 0
jne 0x499921
mov edi, dword [esp + 0x20]
mov ebx, esi
cmp esi, edx
mov ecx, 0
cmovb ecx, eax
add eax, 0x18
lea edi, [edi + ebx + 1]
inc ebx
cmp edi, 1
jne 0x498cf4
mov edi, dword [esp + 0x104]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov dword [edi + 0x1c], ecx
mov ecx, edi
mov dword [edi + 0x18], eax
xor eax, eax
mov dword [ecx], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [eax + 0x14]
mov bl, 0x12
test ecx, ecx
je 0x4991c1
mov eax, dword [eax + 0x18]
mov dword [esp], edi
mov dword [esp + 0x50], eax
movzx eax, word [ecx + 0x4d6]
mov esi, 0xffffffff
mov dword [esp + 0xc], ecx
lea edi, [eax*8]
mov dword [esp + 0x10], eax
test edi, edi
je 0x498de3
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + esi*8 + 0xc]
mov ecx, dword [eax + esi*8 + 8]
mov dword [esp + 0x14], ebx
xor ebx, dword [esp]
mov eax, ecx
mov dword [esp + 4], ecx
xor ecx, ecx
xor eax, edx
or eax, ebx
mov eax, dword [esp]
setne cl
cmp edx, dword [esp + 4]
sbb eax, dword [esp + 0x14]
mov eax, 0xff
cmovb ecx, eax
inc esi
add edi, 0xfffffff8
cmp cl, 1
je 0x498d98
movzx eax, cl
test eax, eax
jne 0x498de7
jmp 0x498e0a
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov bl, 0x12
sub eax, 1
jb 0x4991c1
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + esi*4 + 0x4d8]
jmp 0x498d7d
mov ecx, dword [esp + 0xc]
imul eax, esi, 0x68
lea ecx, [ecx + eax + 0x58]
cmp byte [ecx + 0x62], 1
jne 0x498e23
mov dword [esp + 0x68], 1
call fcn.004747e0
movzx ecx, byte [esp + 0xa4]
mov esi, eax
test edx, edx
mov dword [esp], ecx
je 0x499025
mov eax, dword [esp + 0x3c]
mov edi, edx
mov dword [esp + 0x48], 0
shl edi, 4
mov eax, dword [eax + 0xf4]
mov dword [esp + 0x20], eax
jmp 0x498e7f
cmp eax, 3
je 0x498f53
cmp eax, 0x31
jne 0x498e73
cmp dword [esp + 0x48], 0
je 0x498fb6
add esi, 0x10
add edi, 0xfffffff0
je 0x49902d
movsd xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0x60]
movq qword [esp + 0xb0], xmm1
movsd qword [esp + 0xa8], xmm0
lea ebx, [esp + 0xa8]
lea ecx, [esp + 0x120]
lea edx, [esp + 0x58]
push ebx
push dword [eax + 0x20]
call fcn.0049f5f0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x49915f
movzx eax, word [esp + 0x130]
cmp eax, 0x46
jle 0x498e5a
cmp eax, 0x47
je 0x498e68
cmp eax, 0x6e
je 0x498efd
cmp eax, 0x2007
jne 0x498e73
lea ebx, [esp + 0xa8]
lea edx, [esp + 0x120]
mov ecx, ebx
call fcn.004a11e0
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x78]
push ebx
push dword [esp + 0x24]
push eax
call fcn.0049e690
add esp, 0xc
cmp byte [esp + 0x78], 0x4b
jne 0x498e73
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x48], ecx
jmp 0x498e73
cmp dword [esp + 0x48], 0
jne 0x498e73
lea ebx, [esp + 0xa8]
lea edx, [esp + 0x120]
mov ecx, ebx
call fcn.004a11e0
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x78]
push ebx
push dword [esp + 0x24]
push eax
call fcn.0049e690
add esp, 0xc
cmp byte [esp + 0x78], 0x4b
mov dword [esp + 0x48], 0
jne 0x498fb0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x14]
jmp 0x499019
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x120]
call fcn.004a11e0
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x78]
push 0x10
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x48]
push dword [esp + 0x10]
push dword [esp + 0xc4]
push dword [esp + 0xc4]
call fcn.004a4a70
add esp, 0x1c
movzx ebx, byte [esp + 0x78]
cmp bl, 0x4b
jne 0x499b58
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa0], eax
jmp 0x498e73
mov dword [esp + 0x48], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 8
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 8
mov dword [esp + 0x80], 0
mov dword [esp + 0xb0], 0
lea edi, [esp + 0x120]
lea eax, [esp + 0xa8]
lea edx, [esp + 0x58]
lea esi, [esp + 0x78]
mov ecx, edi
push 0
push eax
push esi
push dword [esp + 0x60]
push dword [esp + 0x28]
push dword [esp + 0x50]
push dword [esp + 0x18]
push 0
call fcn.004a3680
add esp, 0x20
movzx ebx, byte [esp + 0x120]
cmp bl, 0x4b
jne 0x4990eb
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
cmp ebx, 0x15
mov dword [esp + 0xa4], eax
jae 0x4991ce
cmp ebx, 1
jbe 0x4998cb
mov edx, ebx
mov ecx, dword [esp + 0xa4]
push 1
call fcn.004a4920
add esp, 4
jmp 0x4998cb
mov ecx, dword [esp + 0x124]
movzx eax, byte [esp + 0x121]
mov edx, dword [esp + 0x128]
movzx esi, word [esp + 0x122]
cmp dword [esp + 0xa8], 0
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x4c], ecx
je 0x49913e
push dword [esp + 0xac]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x78], 0
je 0x4988b8
push dword [esp + 0x7c]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x4988b8
mov eax, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x130]
mov esi, ebx
shr esi, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x4c], eax
mov al, bh
mov dword [esp + 0x20], eax
jmp 0x4988b8
mov dword [esp + 0x20], 0
mov edx, dword [esi + edi*8 + 0x10]
mov esi, dword [esi + edi*8 + 0x14]
xor eax, eax
test edx, edx
setne al
xor ebx, ebx
test esi, esi
setne bl
mov dword [esp + 0x9c], eax
jmp 0x498d2d
mov dword [esp + 0x4c], 0
jmp 0x49888e
lea eax, [ebx*4]
mov dword [esp + 0x100], edi
and eax, 0xfffffff8
lea ecx, [eax + eax*2]
movzx eax, byte [0x597110]
mov edx, 8
call fcn.00429bd0
test eax, eax
mov dword [esp + 0x3c], ebx
je 0x499e35
mov esi, eax
movzx eax, byte [0x597110]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00429bd0
test eax, eax
mov dword [esp], esi
je 0x499e4e
mov ebx, eax
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x3c]
xor edi, edi
mov dword [esp + 0xc8], 0x10
lea ecx, [eax + 0x40]
add eax, 0xffffffe8
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0xc4], ecx
jmp 0x499269
mov edi, 3
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
cmp eax, esi
jae 0x4998ad
mov ecx, dword [esp + 0xa4]
mov edx, esi
lea esi, [eax + eax*2]
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0xc], edi
sub edx, eax
cmp edx, 2
lea ecx, [ecx + esi*8]
mov dword [esp + 0x14], ecx
jae 0x49929d
mov eax, edx
mov edx, dword [esp + 0x20]
lea ecx, [eax + edx]
jmp 0x499463
mov dword [esp + 0x18], esi
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x28]
cmp esi, eax
jb 0x4992ca
mov eax, dword [ecx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 8], eax
ja 0x49931b
mov eax, dword [esp + 8]
cmp eax, dword [ecx]
mov eax, dword [esp + 4]
sbb eax, dword [ecx + 4]
jae 0x49931b
mov eax, 2
cmp edx, 3
jb 0x499393
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx*8]
mov eax, 2
jmp 0x4992f9
inc eax
add ecx, 0x18
cmp edx, eax
je 0x49938d
mov edi, esi
mov esi, dword [ecx]
cmp esi, edi
jb 0x4992ed
ja 0x49938f
mov edi, dword [ecx - 0x28]
mov ebx, dword [ecx - 0xc]
cmp dword [ecx - 0x10], edi
sbb ebx, dword [ecx - 0x24]
mov ebx, dword [esp + 0x44]
jb 0x4992ed
jmp 0x49938f
mov eax, 2
cmp edx, 3
jb 0x499291
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
lea edi, [eax + ecx*8]
mov eax, 2
jmp 0x499356
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x44]
inc eax
add edi, 0x18
mov dword [esp + 4], ecx
cmp edx, eax
je 0x4998a4
mov ecx, esi
mov esi, dword [edi]
cmp esi, ecx
jb 0x49989b
mov ebx, dword [edi - 0x10]
mov ecx, dword [edi - 0xc]
ja 0x49933e
cmp ebx, dword [esp + 8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
sbb ecx, dword [esp + 4]
mov ecx, dword [esp + 8]
jae 0x49933e
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0xc]
jmp 0x499291
mov eax, edx
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, eax
add ecx, edx
jb 0x499db8
mov esi, edx
mov edx, dword [esp + 0x3c]
cmp ecx, edx
ja 0x499da6
cmp eax, 2
jae 0x4993bb
mov edx, esi
jmp 0x499463
mov esi, dword [esp + 0x88]
mov dword [esp + 0x1c], ecx
lea ecx, [ecx + ecx*2]
mov edx, eax
shr edx, 1
lea ecx, [esi + ecx*8]
mov esi, dword [esp + 0x14]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x128], xmm1
movsd qword [esp + 0x120], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
movsd xmm0, qword [esp + 0x130]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x120]
movq xmm1, qword [esp + 0x128]
movq qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
add ecx, 0xffffffe8
dec edx
jne 0x4993e0
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov esi, ecx
sub esi, edx
jb 0x499d14
cmp ecx, dword [esp + 0x3c]
ja 0x499d14
jae 0x4994b5
cmp eax, 0xa
jae 0x4994b5
mov ecx, dword [esp + 0x3c]
lea esi, [edx + 0xa]
cmp esi, ecx
cmovae esi, ecx
mov dword [esp + 0x1c], esi
sub esi, edx
jb 0x499d5d
cmp eax, 1
adc eax, 0
mov ecx, dword [esp + 0x14]
mov edx, esi
push eax
call fcn.004a4920
add esp, 4
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
jmp 0x4994b9
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0xc8]
jne 0x499518
movzx eax, byte [0x597110]
mov ecx, edi
shl ecx, 4
mov edx, 4
call fcn.00429bd0
test eax, eax
je 0x499d64
mov ecx, eax
lea eax, [edi + edi]
mov dword [esp + 0xc8], eax
lea eax, [edi*8]
push eax
push ebx
push ecx
mov dword [esp + 0x20], ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push ebx
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [ebx + edi*8], esi
mov dword [ebx + edi*8 + 4], edx
inc edi
cmp edi, 2
jb 0x499259
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], ebx
jmp 0x49959f
mov eax, dword [esp]
mov ebx, edi
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
lea edi, [esi - 1]
sub ecx, eax
push ecx
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x74]
add eax, dword [esp + 0x18]
mov dword [ebx + ecx*8 + 8], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, esi
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov esi, dword [esp + 0x3c]
cmp edi, 1
jbe 0x499878
mov dword [esp + 0xc], edi
mov eax, dword [ebx + edi*8 - 8]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ebx + ecx*8 - 4]
add ecx, eax
cmp ecx, esi
mov ecx, dword [esp + 0xc]
je 0x499600
mov edx, dword [ebx + ecx*8 - 0x10]
cmp edx, eax
jbe 0x499600
cmp ecx, 2
jbe 0x49987f
lea esi, [ecx - 3]
mov edi, ecx
mov ecx, dword [ebx + ecx*8 - 0x18]
mov dword [esp + 8], esi
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x499863
cmp edi, 3
jbe 0x499254
add edx, ecx
mov esi, dword [esp + 8]
cmp dword [ebx + edi*8 - 0x20], edx
jbe 0x49960c
jmp 0x499892
cmp ecx, 3
jb 0x499614
lea esi, [ecx - 3]
mov ecx, dword [ebx + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0xc]
jb 0x499617
lea esi, [ecx - 2]
cmp ecx, esi
jbe 0x499c24
lea eax, [esi + 1]
cmp ecx, eax
jbe 0x499c36
mov eax, dword [ebx + esi*8 + 8]
mov edx, dword [ebx + esi*8 + 0xc]
mov ecx, dword [ebx + esi*8 + 4]
add edx, eax
mov edi, edx
sub edi, ecx
mov dword [esp + 0x14], edi
jb 0x499c73
cmp edx, dword [esp + 0x3c]
ja 0x499c85
mov dword [esp + 8], esi
mov esi, dword [ebx + esi*8]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
lea eax, [ecx + ecx*2]
mov dword [esp + 0x50], ecx
mov ecx, ebx
lea ebx, [edi + eax*8]
lea eax, [esi + esi*2]
mov dword [esp + 0x18], esi
lea edi, [ebx + eax*8]
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
sub edx, esi
cmp edx, esi
lea eax, [ecx + eax*8]
mov dword [esp + 0x74], eax
jae 0x499790
lea eax, [edx*8]
mov dword [esp + 0x14], edx
lea esi, [eax + eax*2]
push esi
push edi
push dword [esp + 8]
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [esp]
cmp dword [esp + 0x18], 0
mov dword [esp + 0x20], esi
jle 0x499540
cmp dword [esp + 0x14], 0
jle 0x499540
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x20]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [edi - 8]
cmp dword [esi - 8], ecx
jae 0x499710
mov dword [esp + 0x20], esi
add edi, 0xffffffe8
jmp 0x49974b
mov ecx, dword [esi - 0x18]
setbe byte [esp + 0x20]
mov edx, dword [esi - 0x14]
cmp ecx, dword [edi - 0x18]
sbb edx, dword [edi - 0x14]
setb cl
and cl, byte [esp + 0x20]
movzx edx, cl
xor cl, 1
neg edx
lea edx, [edx + edx*2]
lea edi, [edi + edx*8]
movzx edx, cl
neg edx
test cl, cl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
mov ecx, esi
mov dword [esp + 0x20], esi
jne 0x49974d
mov ecx, edi
movsd xmm0, qword [ecx + 0x10]
cmp edi, ebx
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
movq qword [eax + 8], xmm1
movsd qword [eax], xmm0
jbe 0x499540
mov esi, dword [esp + 0x20]
add eax, 0xffffffe8
cmp esi, dword [esp]
ja 0x4996f0
jmp 0x499540
lea eax, [esi*8]
lea esi, [eax + eax*2]
push esi
push ebx
push dword [esp + 8]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
add esi, dword [esp]
test eax, eax
mov dword [esp + 0x20], esi
jle 0x49985b
cmp dword [esp + 0x14], eax
jle 0x49985b
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 4]
lea eax, [eax + ecx*8]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
nop word [eax + eax]
mov ecx, dword [edi + 0x10]
mov esi, dword [eax + 0x10]
cmp ecx, esi
jb 0x499808
mov edx, dword [edi]
cmp edx, dword [eax]
mov edx, dword [edi + 4]
sbb edx, dword [eax + 4]
setb byte [esp + 4]
xor edx, edx
cmp ecx, esi
ja 0x499857
test byte [esp + 4], 1
mov ecx, eax
je 0x49980c
mov dl, 1
mov ecx, edi
movsd xmm0, qword [ecx + 0x10]
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
mov ecx, edx
xor cl, 1
movzx ecx, cl
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8]
movq qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add ebx, 0x18
cmp eax, dword [esp + 0x20]
jae 0x499545
movzx ecx, dl
lea ecx, [ecx + ecx*2]
lea edi, [edi + ecx*8]
cmp edi, dword [esp + 0x14]
jb 0x4997e0
jmp 0x499545
mov ecx, eax
jmp 0x49980c
mov eax, dword [esp]
jmp 0x499545
mov esi, dword [esp + 8]
cmp ecx, eax
mov ecx, dword [esp + 0xc]
jae 0x499614
jmp 0x499617
mov edi, 1
jmp 0x499884
mov edi, 2
mov eax, dword [esp + 0x1c]
cmp eax, esi
jb 0x499269
jmp 0x4998ad
mov edi, dword [esp + 0xc]
jmp 0x499259
mov edi, dword [esp + 0xc]
jmp 0x499291
mov edi, dword [esp + 0xc]
jmp 0x49928f
push ebx
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
push dword [esp]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x78], ebx
jbe 0x499919
test ebx, ebx
je 0x4999b3
lea eax, [ebx*8]
lea edi, [eax + eax*4]
push edi
push esi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp], eax
jne 0x4999c8
mov ecx, 8
mov edx, edi
call fcn.00429f40
jmp 0x499e97
mov dword [esp], esi
jmp 0x4999c8
xor eax, eax
jmp 0x498c88
jmp 0x497d08
movq xmm1, qword [esp + 0x128]
movsd xmm0, qword [esp + 0x121]
movq qword [esp + 0x68], xmm1
movsd qword [esp + 0x61], xmm0
mov byte [esp + 0x60], al
jmp 0x497d44
mov bl, 0x35
jmp 0x499b26
mov al, 0x35
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8d]
mov ah, byte [esp + 0x97]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x64], edx
mov dword [esp + 0x61], ecx
mov ch, byte [esp + 0x94]
movzx edx, word [esp + 0x95]
mov byte [esp + 0x60], al
mov byte [esp + 0x68], ch
mov byte [esp + 0x6b], ah
mov word [esp + 0x69], dx
mov dword [esp + 0x6c], esi
jmp 0x497d44
mov bl, 0x13
mov edi, eax
jmp 0x499b07
push esi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov dword [esp], 8
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
cmp dword [esp + 0xa8], eax
jbe 0x499a2f
mov edi, dword [esp + 0x48]
test eax, eax
je 0x499a39
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esp + 0x20], eax
push eax
push esi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapReAlloc
mov ecx, eax
mov eax, dword [esp + 0xc]
mov edx, edi
test ecx, ecx
mov dword [esp + 4], ecx
jne 0x499a55
mov edx, dword [esp + 0x20]
mov ecx, 8
call fcn.00429f40
jmp 0x499e97
mov edx, dword [esp + 0x48]
mov dword [esp + 4], esi
jmp 0x499a55
push esi
push 0
push dword [0x5970d8]
mov esi, eax
call sub.KERNEL32.dll_HeapFree
mov eax, esi
mov edx, edi
mov dword [esp + 4], 8
mov esi, dword [esp + 0x40]
cmp dword [esi], 2
jne 0x499a84
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xa0]
mov edi, dword [esp]
mov ecx, ebx
mov esi, ebx
mov dword [esp + 0xc], eax
xor eax, eax
mov cl, ch
shr esi, 0x10
mov dword [esp + 0x20], ecx
jmp 0x4988c8
test ebx, ebx
je 0x499a9c
push dword [esp]
push 0
push dword [0x5970d8]
mov edi, eax
call sub.KERNEL32.dll_HeapFree
mov eax, edi
test eax, eax
je 0x498907
push dword [esp + 4]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x498907
mov bl, 0x35
jmp 0x499b26
mov dword [esp + 0x5f], eax
mov bl, 0x13
movzx eax, word [esp + 0x60]
movq xmm0, qword [esp + 0x58]
mov word [esp + 0x95], ax
movzx eax, byte [esp + 0x62]
movd ecx, xmm0
mov byte [esp + 0x97], al
movq qword [esp + 0x8d], xmm0
shufps xmm0, xmm0, 0x55
mov edi, dword [esp + 0x94]
movd eax, xmm0
shld eax, ecx, 8
jmp 0x499b07
mov bl, 0x35
movzx ecx, byte [esp + 0x8f]
movzx edx, word [esp + 0x8d]
mov byte [esp + 0xfe], cl
mov word [esp + 0xfc], dx
movzx ecx, byte [esp + 0xfe]
movzx edx, word [esp + 0xfc]
mov byte [esp + 0x63], cl
mov word [esp + 0x61], dx
mov byte [esp + 0x60], bl
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], 0
jmp 0x497d44
mov ecx, dword [esp + 0x7c]
movzx eax, byte [esp + 0x79]
mov edx, dword [esp + 0x80]
movzx esi, word [esp + 0x7a]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x4c], ecx
jmp 0x4988b8
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x8d], al
mov al, 0x17
jmp 0x49995d
xor ecx, ecx
mov bl, 0x13
xor edx, edx
mov bh, cl
jmp 0x499bff
push 0x5821b8
call fcn.00469a50
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, ebx
movdqa xmm0, xmm1
pshufd xmm0, xmm1, 0x55
shr edx, 0x10
movd dword [esp + 0x108], xmm0
mov esi, dword [esp + 0x108]
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], bh
mov word [esp + 0x62], dx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
jmp 0x497d44
mov dword [esp + str.Index_out_of_bounds], 0x5858a8
mov edx, 0x585938
jmp 0x499c46
mov edx, 0x585948
mov dword [esp + str.Index_out_of_bounds], 0x5858a8
mov ecx, dword [esp + 0x100]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.vmesh_src_char_anim.rs
mov dword [ecx + 0xc], 0
call fcn.004696f0
jmp 0x499e97
push 0x585958
call fcn.0046ea80
add esp, 4
jmp 0x499e97
mov ecx, edx
mov edx, dword [esp + 0x3c]
push 0x585958
call fcn.0046a7e0
add esp, 4
jmp 0x499e97
mov edx, 0x585948
mov dword [esp + str.Index_out_of_bounds], 0x5858a8
jmp 0x499cbf
mov dword [esp + str.Index_out_of_bounds], 0x5858a8
mov edx, 0x585938
mov ecx, dword [esp + 0x114]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.vmesh_src_char_anim.rs
mov dword [ecx + 0xc], 0
call fcn.004696f0
jmp 0x499e97
push 0x585958
call fcn.0046ea80
add esp, 4
jmp 0x499e97
mov ecx, edx
mov edx, ebx
push 0x585958
call fcn.0046a7e0
add esp, 4
jmp 0x499e97
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len
push 0x5859c4
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov ecx, 8
mov edx, esi
call fcn.00429f40
jmp 0x499e97
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len
push 0x5859c4
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov eax, 0x5859d4
jmp 0x499dc1
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585988
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov eax, 0x5859d4
jmp 0x499e22
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585988
call fcn.0046b190
add esp, 4
jmp 0x499e97
push 0x585928
call fcn.0046a7e0
add esp, 4
jmp 0x499e97
mov dword [esp + 0x1c], ecx
mov eax, 0x585928
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push eax
call fcn.0046ea80
add esp, 4
jmp 0x499e97
mov ecx, 0x586c6b
mov edx, 0x2b
push 0x582204
call fcn.0046b190
mov ecx, ebx
jmp 0x499df1
mov ecx, eax
mov edx, 5
push 0x57f01c
call fcn.0046a7e0
add esp, 4
jmp 0x499e97
mov edx, edi
push 0x585928
call fcn.0046a7e0
add esp, 4
jmp 0x499e97
mov eax, 0x585928
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
push eax
call fcn.0046ea80
add esp, 4
jmp 0x499e97
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585968
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585978
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585968
call fcn.0046b190
add esp, 4
jmp 0x499e97
mov edx, 0x2b
mov ecx, 0x586c6b
push 0x585978
call fcn.0046b190
add esp, 4
ud2