Function at 0x4971f0
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 0x497207
pop edi
movzx ebx, byte [eax]
cmp bl, 0x4b
jne 0x4980ac
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 0x4989fa
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 0x4988bb
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 0x497406
cmp dl, 2
jae 0x4980e4
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 0x49743e
add ecx, 7
inc eax
add dword [esp + 0x14], 0xffffffff
jb 0x4973f0
jmp 0x4980fa
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 0x49747e
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x10]
test ecx, ecx
jne 0x49748e
mov ecx, dword [esp]
dec ecx
cmp ecx, dword [eax + 8]
jae 0x49748e
imul esi, ecx, 0x68
add esi, dword [eax + 4]
jmp 0x497565
mov edi, dword [esp + 8]
dec dword [esp + 0xb8]
jmp 0x497d45
mov edx, dword [eax + 0xc]
mov cl, 0x12
test edx, edx
je 0x499d18
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 0x49752c
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 0x4974d0
mov edx, dword [esp + 0x10]
movzx eax, al
test eax, eax
je 0x49755a
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x18]
jmp 0x49753e
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xe8]
sub eax, 1
jb 0x49825a
mov edx, dword [edx + ecx*4 + 0x4d8]
mov dword [esp + 0xe8], eax
jmp 0x4974a5
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 0x497576
inc dword [esp + 0xb8]
cmp word [esi + 0x60], 0x2e
jne 0x49758a
cmp dword [esi], 0
je 0x49759e
mov ebx, dword [esi + 0xc]
mov esi, dword [esi + 8]
jmp 0x4975ad
cmp dword [esi], 0
je 0x497d07
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 8]
jmp 0x497d16
mov ebx, dword [esi + 4]
cmp ebx, 5
ja 0x49a1db
add esi, 8
xor eax, eax
test ebx, ebx
je 0x49804a
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 0x497634
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 0x497d65
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.0049f9e0
add esp, 8
cmp dword [esp + 0x74], 0x800
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
jne 0x497834
xor eax, 0x2e
or eax, ecx
je 0x498209
movzx eax, word [esp + 0x130]
cmp eax, 0x11
je 0x497bc8
mov edi, dword [esp + 8]
cmp eax, 0x12
je 0x4979da
cmp eax, 0x55
jne 0x497628
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x497b7e
cmp ecx, 0x18
jne 0x4979ae
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 0x49827a
mul dword [esp + 0x48]
mov dword [esp], 0
jo 0x499eaa
mov ecx, dword [esp + 0xd8]
add edi, dword [esp + 0x40]
sub ecx, eax
jb 0x49827a
add eax, edi
cmp ecx, 8
jb 0x499eae
cmp dword [eax + 4], 0
jne 0x499ef5
mov eax, dword [eax]
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
je 0x497e05
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.0049f9e0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x498209
movzx eax, word [esp + 0x130]
cmp eax, 0x55
jne 0x4979ba
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x497b6e
mul dword [esp + 0x48]
jo 0x499eaa
mov ecx, dword [esp + 0xd8]
sub ecx, eax
jb 0x49827a
add eax, edi
cmp ecx, 8
jb 0x499eae
cmp dword [eax + 4], 0
jne 0x499ef5
mov eax, dword [eax]
add esi, 0x10
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
jne 0x49775a
jmp 0x497e05
xor eax, 0x2e
or eax, ecx
je 0x498209
movzx eax, word [esp + 0x130]
cmp eax, 0x11
je 0x497bc8
mov edi, dword [esp + 8]
cmp eax, 0x12
je 0x4979da
cmp eax, 0x55
jne 0x497628
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x497b7e
cmp ecx, 0x18
jne 0x4979ae
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 0x49827a
mul dword [esp + 0x48]
mov dword [esp], 0
jo 0x499d44
mov ecx, dword [esp + 0xd8]
add edi, dword [esp + 0x40]
sub ecx, eax
jb 0x49827a
add eax, edi
cmp ecx, 4
jb 0x499d9a
mov eax, dword [eax]
add eax, dword [esp + 0x40]
cmp esi, ebx
mov dword [esp + 0xec], eax
je 0x497e05
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.0049f9e0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x498209
movzx eax, word [esp + 0x130]
cmp eax, 0x55
jne 0x4979ba
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x497b6e
mul dword [esp + 0x48]
jo 0x499d44
mov ecx, dword [esp + 0xd8]
sub ecx, eax
jb 0x49827a
add eax, edi
cmp ecx, 4
jb 0x499d9a
add esi, 0x10
jmp 0x4978e2
mov dword [esp], 0
jmp 0x497628
cmp eax, 0x11
je 0x497bbe
mov edi, dword [esp + 8]
cmp eax, 0x12
jne 0x497cef
add esi, 0x10
mov dword [esp], 1
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov eax, dword [esp + 0x78]
test al, 0x3f
je 0x497ac7
mov edx, dword [esp + 0x10]
cmp eax, 7
je 0x497a93
cmp eax, 0xc
jne 0x49762c
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub edi, dword [esp + 0x88]
jb 0x498261
mov eax, dword [esp + 0x80]
mul dword [esp + 0xc8]
jo 0x499d4b
add ecx, dword [esp + 0x88]
mov edx, edi
sub edx, eax
jb 0x498261
movzx ebx, byte [esp + 0x1c]
dec ebx
cmp ebx, 7
ja 0x499f79
mov ebx, dword [ebx*4 + 0x49a4f4]
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 0x49762c
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 0x497628
add esi, 0x10
cmp ecx, 0x16
jne 0x497cfe
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 0x49762c
add esi, 0x10
mov dword [esp], 1
mov edi, dword [esp + 8]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x120]
call fcn.004a15d0
mov eax, dword [esp + 0x78]
test al, 0x3f
je 0x4975fc
mov edx, dword [esp + 0x10]
cmp eax, 0xc
jne 0x49762c
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub edi, dword [esp + 0x88]
jb 0x498261
mov eax, dword [esp + 0x80]
mul dword [esp + 0xc8]
jo 0x499d4b
add ecx, dword [esp + 0x88]
mov edx, edi
sub edx, eax
jb 0x498261
movzx ebx, byte [esp + 0x1c]
dec ebx
cmp ebx, 7
ja 0x499f79
mov ebx, dword [ebx*4 + 0x49a514]
add ecx, eax
add ebx, dword [esp + 0xa0]
jmp ebx
add esi, 0x10
mov dword [esp], 1
jmp 0x497628
mov edi, dword [esp + 8]
jmp 0x497628
mov eax, dword [esi + 4]
cmp eax, 6
jae 0x49a1df
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.0049f140
add esp, 0xc
movzx eax, byte [esp + 0x120]
cmp al, 0x4b
jne 0x499d1d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xac]
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 0xc], eax
jne 0x497392
jmp 0x49822c
cmp dword [esp], 0
jne 0x497e09
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 4]
or eax, dword [esp + 0xc]
je 0x497f8c
mov eax, ebx
or eax, esi
je 0x497f8c
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xbc]
cmp dword [esp + 0xc0], eax
sbb ecx, dword [esp + 0xe0]
jae 0x498048
cmp edi, dword [esp + 0xcc]
jne 0x497dd6
lea ecx, [esp + 0xcc]
mov edx, edi
call fcn.0049e140
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 0x498022
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 0x499fbc
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.004a1e50
mov eax, dword [esp + 0x58]
movdqu xmm1, xmmword [esp + 0x60]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x497f68
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 0x497ebe
cmp edi, dword [esp + 0xcc]
movdqa xmmword [esp + 0x20], xmm1
jne 0x497f38
lea ecx, [esp + 0xcc]
mov edx, edi
call fcn.0049e140
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
jmp 0x497f3c
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 0x497ebe
cmp eax, 2
jne 0x497f83
movd ebx, xmm1
cmp bl, 0x4b
jne 0x499fd0
mov edx, dword [esp + 0x10]
jmp 0x49804f
mov edx, dword [esp + 0x10]
jmp 0x49804c
mov ecx, dword [esp + 0xe8]
xor eax, eax
mov ah, al
or dword [esp + 0x44], ecx
je 0x498040
or ebx, esi
je 0x498040
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 0x498044
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0xcc]
jne 0x498000
mov edx, dword [esp + 8]
lea ecx, [esp + 0xcc]
call fcn.0049e140
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 0x49804f
mov ebx, eax
jmp 0x49804c
mov edi, dword [esp + 8]
xor eax, eax
mov bh, al
and bh, 1
test bh, 1
je 0x497d49
mov esi, edx
mov edx, dword [esp + 0xc4]
cmp edx, dword [esp + 0xf0]
jne 0x49807d
lea ecx, [esp + 0xf0]
call fcn.004a3940
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 0x497d49
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 0x498ef3
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x14]
mov cl, 6
mov dword [esp + 0xac], eax
jmp 0x498118
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 0x49815a
push dword [esp + 0xd0]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
test edi, edi
je 0x4981b9
lea ebx, [esi + 0x18]
jmp 0x498186
add ebx, 0x28
dec edi
je 0x4981b9
cmp dword [ebx - 0x10], 0
jne 0x498180
cmp dword [ebx - 8], 0
je 0x4981a2
push dword [ebx - 0xc]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [ebx], 0
je 0x498180
push dword [ebx - 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x498180
cmp dword [esp + 0xf0], 0
je 0x4981d1
push esi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x50]
lea esi, [eax + 0x120]
cmp dword [esi], 2
jne 0x4989e4
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 0x4989ed
movsd xmm0, qword [esp + 0x128]
movq xmm1, qword [esp + 0x130]
movq qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
jmp 0x498134
mov eax, dword [esp + 0xd0]
cmp edi, 0x15
mov dword [esp + 0x40], eax
jae 0x498281
cmp edi, 1
jbe 0x4988bb
mov ecx, dword [esp + 0x40]
mov edx, edi
push 1
call fcn.0049f000
add esp, 4
jmp 0x4988bb
mov cl, 0x12
jmp 0x498118
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], 0
mov al, 0x13
jmp 0x499d4d
mov bl, 0x13
jmp 0x499f16
lea eax, [edi*4]
and eax, 0xfffffff8
lea ecx, [eax + eax*2]
movzx eax, byte [0x592110]
mov edx, 8
call fcn.00429bf0
test eax, eax
mov dword [esp + 0x20], eax
je 0x49a257
movzx eax, byte [0x592110]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00429bf0
test eax, eax
je 0x49a270
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 0x498302
mov ebx, 2
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x49889c
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 0x498377
mov eax, dword [esp]
mov ecx, edi
mov esi, ecx
sub esi, edx
jb 0x49a131
cmp ecx, edi
ja 0x49a131
jae 0x4983c6
cmp eax, 0xa
jae 0x4983c6
lea esi, [edx + 0xa]
cmp esi, edi
cmovae esi, edi
mov dword [esp + 0x1c], esi
sub esi, edx
jb 0x49a170
cmp eax, 1
adc eax, 0
mov ecx, dword [esp + 0xc]
mov edx, esi
push eax
call fcn.0049f000
add esp, 4
mov edx, dword [esp + 4]
jmp 0x4983ca
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 0x498716
cmp dword [esp], 2
mov eax, dword [esp + 0x44]
jne 0x498731
mov edx, dword [esp + 4]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x4987c8
mov dword [esp + 0x1c], ecx
cmp ebx, dword [esp + 0xc8]
jne 0x498436
movzx eax, byte [0x592110]
mov ecx, ebx
shl ecx, 4
mov edx, 4
call fcn.00429bf0
test eax, eax
je 0x49a17a
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 [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
mov edx, dword [esp + 4]
jmp 0x49843a
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 0x4982f6
mov dword [esp + 0x14], esi
jmp 0x4984af
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 0x498700
mov eax, dword [esi + ebx*8 - 8]
mov ecx, dword [esi + ebx*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x498500
mov edx, dword [esi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x498500
cmp ebx, 2
jbe 0x4982f1
lea ecx, [ebx - 3]
mov dword [esp + 4], ecx
mov ecx, dword [esi + ebx*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x4986eb
cmp ebx, 3
jbe 0x498883
mov esi, dword [esp + 0x14]
add edx, ecx
cmp dword [esi + ebx*8 - 0x20], edx
jbe 0x498510
jmp 0x49888c
cmp ebx, 3
jb 0x498518
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 0x49851b
lea edi, [ebx - 2]
cmp ebx, edi
jbe 0x49a09f
lea eax, [edi + 1]
mov dword [esp + 0x18], ebx
cmp ebx, eax
mov ebx, dword [esp + 8]
jbe 0x49a08d
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 0x49a0dc
cmp edx, ebx
mov dword [esp + 0x10], eax
ja 0x49a0ee
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 0x498655
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 0x498453
cmp dword [esp + 0x88], 0
jle 0x498453
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 0x498453
add eax, 0xffffffe8
cmp esi, dword [esp + 0x20]
ja 0x4985f0
jmp 0x498453
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 0x4986e0
cmp dword [esp], eax
jle 0x4986e0
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 0x4986e4
movzx edx, dl
lea edx, [edx + edx*2]
lea ebx, [ebx + edx*8]
cmp ebx, ecx
jb 0x498690
jmp 0x4986e4
mov eax, dword [esp + 0x20]
mov ecx, edi
jmp 0x498459
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp ecx, eax
jae 0x498518
jmp 0x49851b
mov ebx, 1
mov eax, dword [esp + 0x1c]
cmp eax, edi
jb 0x498302
jmp 0x49889c
cmp dword [esp], 2
mov eax, dword [esp + 0x44]
jne 0x498768
mov edx, dword [esp + 4]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x49832b
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 0x4987a0
inc eax
add ebx, 0x18
cmp dword [esp], eax
jne 0x49874c
jmp 0x49879d
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 0x4987a0
inc eax
add ebx, 0x18
cmp dword [esp], eax
jne 0x498783
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 0x49832b
cmp edx, ecx
ja 0x49a209
cmp ecx, edi
ja 0x49a1f8
cmp eax, 2
jb 0x49832b
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 0x4987fc
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov eax, dword [esp]
jmp 0x49832b
mov esi, dword [esp + 0x14]
mov ebx, 3
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 8]
cmp eax, edi
jb 0x498302
push esi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x20]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0xf8]
mov edi, dword [esp + 0xf4]
cmp dword [esp + 0xf0], ebx
jbe 0x498950
test ebx, ebx
je 0x49896f
lea eax, [ebx*8]
lea esi, [eax + eax*4]
push esi
push edi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp + 0x20], eax
je 0x49a120
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
cmp dword [esp + 0xcc], esi
jbe 0x49896b
test esi, esi
je 0x4989a2
lea eax, [esi*8]
lea eax, [eax + eax*2]
mov dword [esp], eax
push eax
push edi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x4989b5
mov edx, dword [esp]
mov ecx, 8
call fcn.00429f60
jmp 0x49a287
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd0]
cmp dword [esp + 0xcc], esi
ja 0x498916
mov eax, edi
jmp 0x4989b5
push edi
push 0
push dword [0x5920d8]
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 0x498916
jmp 0x49896b
push edi
push 0
push dword [0x5920d8]
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 0x4981e4
lea ecx, [esp + 0x58]
call fcn.004a39e0
mov eax, dword [esi]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x50]
test eax, eax
je 0x498a49
movzx eax, byte [esi + 0x128]
mov ebx, dword [esi + 0x12c]
cmp al, 0x4b
je 0x498a51
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 0x498ef3
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 0x498af7
mov eax, dword [ebx + 8]
xor edi, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
jmp 0x498aa5
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 0x498af7
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 0x498ae5
cmp dword [esp + 0x20], esi
mov ebx, dword [esp]
sbb ebx, dword [esp + 4]
jb 0x498b0b
cmp dword [esp + 0x20], esi
mov ecx, dword [esp]
sbb ecx, dword [esp + 4]
jb 0x498a80
lea ecx, [edx + 1]
jmp 0x498a82
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x3c], 0
jmp 0x498d39
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 0x499fc6
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 0x498cf9
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 0x498c88
mov eax, esi
sub eax, edi
jbe 0x498c88
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 0x498c21
cmp al, 2
jae 0x498c9e
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 0x498fe1
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 0x498c10
mov bl, 0x13
mov dword [esp + 0x4c], 0
mov dword [esp + 4], 0
jmp 0x498ca8
xor esi, esi
mov bl, 0x38
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], 0
jmp 0x498ca8
mov bl, 6
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
cmp eax, 2
jne 0x498cf9
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 0x498d1b
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x9c]
movzx eax, byte [esi + 8]
mov ebx, dword [esi + 0xc]
cmp al, 0x4b
jne 0x498efd
mov eax, ebx
jmp 0x498d29
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 0x49911d
mov eax, dword [esi + 0x108]
mov dword [esp + 0x74], ecx
cmp eax, 2
jne 0x498ddb
mov ebx, edx
lea edi, [esi + 0x108]
lea edx, [esi + 0x10]
lea ecx, [esp + 0x120]
call fcn.0049ac40
lea ecx, [esp + 0x58]
mov edx, esi
push dword [esp + 0x54]
lea eax, [esp + 0x124]
push eax
call fcn.0049b010
add esp, 8
cmp dword [esi + 0x108], 2
jne 0x498dce
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 0x498dd7
lea ecx, [esp + 0x58]
call fcn.0049d9b0
mov eax, dword [edi]
mov edx, ebx
lea ecx, [esi + 0x110]
add esi, 0x10c
test eax, eax
cmovne esi, ecx
je 0x498dff
movzx ecx, byte [esi]
mov eax, dword [esi + 4]
cmp ecx, 0x4b
jne 0x498ec4
mov esi, eax
test esi, esi
je 0x49911d
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 0x498f2d
xor edi, edi
mov ebx, edx
jmp 0x498e6b
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 0x498f19
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 0x498eb0
mov dword [esp + 8], ebx
cmp dword [esp + 0x20], esi
mov ebx, dword [esp]
sbb ebx, eax
mov ebx, dword [esp + 8]
jb 0x498f23
cmp dword [esp + 0x20], esi
mov ecx, dword [esp]
sbb ecx, eax
jb 0x498e40
lea eax, [ebx + 1]
mov dword [esp + 8], eax
jmp 0x498e44
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 0x49914c
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 0x498a32
test edi, edi
jne 0x49911d
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 0x49903b
mov eax, dword [edi + ecx*8 + 4]
test eax, eax
je 0x498fdd
mov ecx, dword [edi + ecx*8]
xor esi, esi
mov edx, eax
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ecx
jmp 0x498f6f
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 0x498fd2
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 0x499029
cmp edx, edi
mov edx, ecx
sbb eax, ebx
jb 0x498fb4
mov edx, dword [esp + 0xc]
cmp edi, dword [esp + 0x20]
sbb ebx, dword [esp]
jae 0x498f59
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 0x498f6f
mov edx, dword [esp + 0x44]
sub esi, 1
mov eax, esi
jae 0x49903b
xor eax, eax
jmp 0x49903b
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 0x49a1c7
mov eax, dword [esp + 0x10]
test edi, edi
jne 0x499156
lea ecx, [edx - 1]
cmp ecx, dword [eax + 0x10]
jae 0x499156
imul ecx, ecx, 0x68
add ecx, dword [eax + 0xc]
jmp 0x499205
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 0x49911d
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 0x49911d
mov eax, dword [esp]
cmp eax, dword [edi + ecx*8 + 4]
jae 0x4990bc
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 0x49911d
mov eax, dword [esi + edi*8 + 8]
mov ebx, dword [esp + 0xa4]
cmp dword [ebx + 4], eax
jbe 0x499587
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 0x49958f
lea eax, [ebx + 1]
cmp eax, edx
je 0x49911d
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 0x49911d
cmp dword [ecx + 4], 0
jne 0x499d11
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 0x4990e4
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 0x4995b1
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 0x4991d3
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 0x499188
movzx eax, cl
test eax, eax
jne 0x4991d7
jmp 0x4991fa
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov bl, 0x12
sub eax, 1
jb 0x4995b1
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + esi*4 + 0x4d8]
jmp 0x49916d
mov ecx, dword [esp + 0xc]
imul eax, esi, 0x68
lea ecx, [ecx + eax + 0x58]
cmp byte [ecx + 0x62], 1
jne 0x499213
mov dword [esp + 0x68], 1
call fcn.004747e0
movzx ecx, byte [esp + 0xa4]
mov esi, eax
test edx, edx
mov dword [esp], ecx
je 0x499415
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 0x49926f
cmp eax, 3
je 0x499343
cmp eax, 0x31
jne 0x499263
cmp dword [esp + 0x48], 0
je 0x4993a6
add esi, 0x10
add edi, 0xfffffff0
je 0x49941d
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.0049f9e0
add esp, 8
mov eax, dword [esp + 0x120]
xor eax, 0x2e
or eax, dword [esp + 0x124]
je 0x49954f
movzx eax, word [esp + 0x130]
cmp eax, 0x46
jle 0x49924a
cmp eax, 0x47
je 0x499258
cmp eax, 0x6e
je 0x4992ed
cmp eax, 0x2007
jne 0x499263
lea ebx, [esp + 0xa8]
lea edx, [esp + 0x120]
mov ecx, ebx
call fcn.004a15d0
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x78]
push ebx
push dword [esp + 0x24]
push eax
call fcn.0049ea80
add esp, 0xc
cmp byte [esp + 0x78], 0x4b
jne 0x499263
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x48], ecx
jmp 0x499263
cmp dword [esp + 0x48], 0
jne 0x499263
lea ebx, [esp + 0xa8]
lea edx, [esp + 0x120]
mov ecx, ebx
call fcn.004a15d0
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x78]
push ebx
push dword [esp + 0x24]
push eax
call fcn.0049ea80
add esp, 0xc
cmp byte [esp + 0x78], 0x4b
mov dword [esp + 0x48], 0
jne 0x4993a0
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 0x499409
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x120]
call fcn.004a15d0
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.004a4e60
add esp, 0x1c
movzx ebx, byte [esp + 0x78]
cmp bl, 0x4b
jne 0x499f48
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa0], eax
jmp 0x499263
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.004a3a70
add esp, 0x20
movzx ebx, byte [esp + 0x120]
cmp bl, 0x4b
jne 0x4994db
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
cmp ebx, 0x15
mov dword [esp + 0xa4], eax
jae 0x4995be
cmp ebx, 1
jbe 0x499cbb
mov edx, ebx
mov ecx, dword [esp + 0xa4]
push 1
call fcn.004a4d10
add esp, 4
jmp 0x499cbb
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 0x49952e
push dword [esp + 0xac]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x78], 0
je 0x498ca8
push dword [esp + 0x7c]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x498ca8
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 0x498ca8
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 0x49911d
mov dword [esp + 0x4c], 0
jmp 0x498c7e
lea eax, [ebx*4]
mov dword [esp + 0x100], edi
and eax, 0xfffffff8
lea ecx, [eax + eax*2]
movzx eax, byte [0x592110]
mov edx, 8
call fcn.00429bf0
test eax, eax
mov dword [esp + 0x3c], ebx
je 0x49a225
mov esi, eax
movzx eax, byte [0x592110]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00429bf0
test eax, eax
mov dword [esp], esi
je 0x49a23e
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 0x499659
mov edi, 3
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
cmp eax, esi
jae 0x499c9d
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 0x49968d
mov eax, edx
mov edx, dword [esp + 0x20]
lea ecx, [eax + edx]
jmp 0x499853
mov dword [esp + 0x18], esi
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x28]
cmp esi, eax
jb 0x4996ba
mov eax, dword [ecx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 8], eax
ja 0x49970b
mov eax, dword [esp + 8]
cmp eax, dword [ecx]
mov eax, dword [esp + 4]
sbb eax, dword [ecx + 4]
jae 0x49970b
mov eax, 2
cmp edx, 3
jb 0x499783
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx*8]
mov eax, 2
jmp 0x4996e9
inc eax
add ecx, 0x18
cmp edx, eax
je 0x49977d
mov edi, esi
mov esi, dword [ecx]
cmp esi, edi
jb 0x4996dd
ja 0x49977f
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 0x4996dd
jmp 0x49977f
mov eax, 2
cmp edx, 3
jb 0x499681
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
lea edi, [eax + ecx*8]
mov eax, 2
jmp 0x499746
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x44]
inc eax
add edi, 0x18
mov dword [esp + 4], ecx
cmp edx, eax
je 0x499c94
mov ecx, esi
mov esi, dword [edi]
cmp esi, ecx
jb 0x499c8b
mov ebx, dword [edi - 0x10]
mov ecx, dword [edi - 0xc]
ja 0x49972e
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 0x49972e
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0xc]
jmp 0x499681
mov eax, edx
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, eax
add ecx, edx
jb 0x49a1a8
mov esi, edx
mov edx, dword [esp + 0x3c]
cmp ecx, edx
ja 0x49a196
cmp eax, 2
jae 0x4997ab
mov edx, esi
jmp 0x499853
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 0x4997d0
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov esi, ecx
sub esi, edx
jb 0x49a104
cmp ecx, dword [esp + 0x3c]
ja 0x49a104
jae 0x4998a5
cmp eax, 0xa
jae 0x4998a5
mov ecx, dword [esp + 0x3c]
lea esi, [edx + 0xa]
cmp esi, ecx
cmovae esi, ecx
mov dword [esp + 0x1c], esi
sub esi, edx
jb 0x49a14d
cmp eax, 1
adc eax, 0
mov ecx, dword [esp + 0x14]
mov edx, esi
push eax
call fcn.004a4d10
add esp, 4
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
jmp 0x4998a9
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0xc8]
jne 0x499908
movzx eax, byte [0x592110]
mov ecx, edi
shl ecx, 4
mov edx, 4
call fcn.00429bf0
test eax, eax
je 0x49a154
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 [0x5920d8]
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 0x499649
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], ebx
jmp 0x49998f
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 0x499c68
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 0x4999f0
mov edx, dword [ebx + ecx*8 - 0x10]
cmp edx, eax
jbe 0x4999f0
cmp ecx, 2
jbe 0x499c6f
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 0x499c53
cmp edi, 3
jbe 0x499644
add edx, ecx
mov esi, dword [esp + 8]
cmp dword [ebx + edi*8 - 0x20], edx
jbe 0x4999fc
jmp 0x499c82
cmp ecx, 3
jb 0x499a04
lea esi, [ecx - 3]
mov ecx, dword [ebx + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0xc]
jb 0x499a07
lea esi, [ecx - 2]
cmp ecx, esi
jbe 0x49a014
lea eax, [esi + 1]
cmp ecx, eax
jbe 0x49a026
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 0x49a063
cmp edx, dword [esp + 0x3c]
ja 0x49a075
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 0x499b80
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 0x499930
cmp dword [esp + 0x14], 0
jle 0x499930
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 0x499b00
mov dword [esp + 0x20], esi
add edi, 0xffffffe8
jmp 0x499b3b
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 0x499b3d
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 0x499930
mov esi, dword [esp + 0x20]
add eax, 0xffffffe8
cmp esi, dword [esp]
ja 0x499ae0
jmp 0x499930
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 0x499c4b
cmp dword [esp + 0x14], eax
jle 0x499c4b
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 0x499bf8
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 0x499c47
test byte [esp + 4], 1
mov ecx, eax
je 0x499bfc
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 0x499935
movzx ecx, dl
lea ecx, [ecx + ecx*2]
lea edi, [edi + ecx*8]
cmp edi, dword [esp + 0x14]
jb 0x499bd0
jmp 0x499935
mov ecx, eax
jmp 0x499bfc
mov eax, dword [esp]
jmp 0x499935
mov esi, dword [esp + 8]
cmp ecx, eax
mov ecx, dword [esp + 0xc]
jae 0x499a04
jmp 0x499a07
mov edi, 1
jmp 0x499c74
mov edi, 2
mov eax, dword [esp + 0x1c]
cmp eax, esi
jb 0x499659
jmp 0x499c9d
mov edi, dword [esp + 0xc]
jmp 0x499649
mov edi, dword [esp + 0xc]
jmp 0x499681
mov edi, dword [esp + 0xc]
jmp 0x49967f
push ebx
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
push dword [esp]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x78], ebx
jbe 0x499d09
test ebx, ebx
je 0x499da3
lea eax, [ebx*8]
lea edi, [eax + eax*4]
push edi
push esi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp], eax
jne 0x499db8
mov ecx, 8
mov edx, edi
call fcn.00429f60
jmp 0x49a287
mov dword [esp], esi
jmp 0x499db8
xor eax, eax
jmp 0x499078
jmp 0x4980f8
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 0x498134
mov bl, 0x35
jmp 0x499f16
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 0x498134
mov bl, 0x13
mov edi, eax
jmp 0x499ef7
push esi
push 0
push dword [0x5920d8]
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 0x499e1f
mov edi, dword [esp + 0x48]
test eax, eax
je 0x499e29
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 [0x5920d8]
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 0x499e45
mov edx, dword [esp + 0x20]
mov ecx, 8
call fcn.00429f60
jmp 0x49a287
mov edx, dword [esp + 0x48]
mov dword [esp + 4], esi
jmp 0x499e45
push esi
push 0
push dword [0x5920d8]
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 0x499e74
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 0x498cb8
test ebx, ebx
je 0x499e8c
push dword [esp]
push 0
push dword [0x5920d8]
mov edi, eax
call sub.KERNEL32.dll_HeapFree
mov eax, edi
test eax, eax
je 0x498cf7
push dword [esp + 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
jmp 0x498cf7
mov bl, 0x35
jmp 0x499f16
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 0x499ef7
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 0x498134
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 0x498ca8
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x8d], al
mov al, 0x17
jmp 0x499d4d
xor ecx, ecx
mov bl, 0x13
xor edx, edx
mov bh, cl
jmp 0x499fef
push 0x57d194
call fcn.004699c0
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 0x498134
mov dword [esp + str.Index_out_of_bounds], 0x580e90
mov edx, 0x580f84
jmp 0x49a036
mov edx, 0x580f94
mov dword [esp + str.Index_out_of_bounds], 0x580e90
mov ecx, dword [esp + 0x100]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.PathTryFromIntErrornumber_of_bones_should_fit_in_i32vmesh_src_v3mc.rs
mov dword [ecx + 0xc], 0
call fcn.00469660
jmp 0x49a287
push 0x580fa4
call fcn.0046e9f0
add esp, 4
jmp 0x49a287
mov ecx, edx
mov edx, dword [esp + 0x3c]
push 0x580fa4
call fcn.0046a750
add esp, 4
jmp 0x49a287
mov edx, 0x580f94
mov dword [esp + str.Index_out_of_bounds], 0x580e90
jmp 0x49a0af
mov dword [esp + str.Index_out_of_bounds], 0x580e90
mov edx, 0x580f84
mov ecx, dword [esp + 0x114]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.PathTryFromIntErrornumber_of_bones_should_fit_in_i32vmesh_src_v3mc.rs
mov dword [ecx + 0xc], 0
call fcn.00469660
jmp 0x49a287
push 0x580fa4
call fcn.0046e9f0
add esp, 4
jmp 0x49a287
mov ecx, edx
mov edx, ebx
push 0x580fa4
call fcn.0046a750
add esp, 4
jmp 0x49a287
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len_
push 0x581010
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov ecx, 8
mov edx, esi
call fcn.00429f60
jmp 0x49a287
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len_
push 0x581010
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov eax, 0x581020
jmp 0x49a1b1
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fd4
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov eax, 0x581020
jmp 0x49a212
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fd4
call fcn.0046b100
add esp, 4
jmp 0x49a287
push 0x580f74
call fcn.0046a750
add esp, 4
jmp 0x49a287
mov dword [esp + 0x1c], ecx
mov eax, 0x580f74
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push eax
call fcn.0046e9f0
add esp, 4
jmp 0x49a287
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
mov edx, 0x2b
push 0x57d1e0
call fcn.0046b100
mov ecx, ebx
jmp 0x49a1e1
mov ecx, eax
mov edx, 5
push 0x579f94
call fcn.0046a750
add esp, 4
jmp 0x49a287
mov edx, edi
push 0x580f74
call fcn.0046a750
add esp, 4
jmp 0x49a287
mov eax, 0x580f74
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
push eax
call fcn.0046e9f0
add esp, 4
jmp 0x49a287
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fb4
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fc4
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fb4
call fcn.0046b100
add esp, 4
jmp 0x49a287
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
push 0x580fc4
call fcn.0046b100
add esp, 4
ud2