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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x198
mov esi, dword [ebp + 8]
mov dword [esp + 0xb8], ecx
mov ecx, dword [0x6dd4e0]
call 0x51c584
pop eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x8c], eax
test esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x2c], pe_nt_image_headers32
je 0x51d2e3
xor eax, eax
mov ch, 1
nop word cs:[eax + eax]
nop dword [eax + eax]
mov cl, byte [edx + eax]
mov ebx, ecx
add bl, 0xf7
cmp bl, 0x17
ja 0x51c5fe
movzx edi, bl
mov ebx, esi
mov esi, 0x800013
bt esi, edi
mov esi, ebx
jae 0x51c5fe
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
setb ch
cmp esi, eax
jne 0x51c5d0
mov eax, esi
test ch, 1
je 0x51d2e3
cmp cl, 0x5b
je 0x51d20f
cmp cl, 0x7b
jne 0x51d90d
inc eax
mov byte [esp + 0x2c], 0x7f
cmp eax, esi
mov dword [esp + 0x1c], eax
jae 0x51d92c
mov ch, 3
mov dword [esp + 0x10], 0
mov byte [esp + 0x94], 6
mov dword [esp + 0xc], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0xac], ecx
mov ch, 2
mov dword [esp + 0x88], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
mov bh, 1
nop word cs:[eax + eax]
nop dword [eax]
mov bl, byte [edx + eax]
mov ecx, ebx
add cl, 0xf7
cmp cl, 0x17
ja 0x51c6ca
movzx ecx, cl
mov edi, 0x800013
bt edi, ecx
jae 0x51c6ca
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
setb bh
cmp esi, eax
jne 0x51c6a0
mov eax, esi
test bh, 1
je 0x51d9c8
cmp bl, 0x2c
je 0x51c6f0
cmp bl, 0x7d
je 0x51d833
test byte [esp + 0xc], 1
je 0x51c743
jmp 0x51df0c
test byte [esp + 0xc], 1
je 0x51d99b
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
jae 0x51d939
mov bh, 1
nop word [eax + eax]
mov bl, byte [edx + eax]
mov ecx, ebx
add cl, 0xf7
cmp cl, 0x17
ja 0x51c73a
movzx ecx, cl
mov edi, 0x800013
bt edi, ecx
jae 0x51c73a
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
setb bh
cmp esi, eax
jne 0x51c710
mov eax, esi
test bh, 1
je 0x51d939
cmp bl, 0x22
jne 0x51d98c
inc eax
lea ecx, [esp + 0x38]
lea edx, [esp + 0x14]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x28], 0
push eax
call fcn.005b9510
add esp, 4
cmp dword [esp + 0x38], 1
je 0x51d7a2
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffffc
cmp ecx, 7
ja 0x51cc30
mov ecx, dword [ecx*4 + 0x51e30c]
mov eax, dword [esp + 0x40]
add ecx, dword [esp + 0x8c]
jmp ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jae 0x51d9c8
mov edx, dword [esp + 0x14]
mov bh, 1
mov dword [esp + 0xc], edx
nop word [eax + eax]
mov edx, dword [esp + 0xc]
mov bl, byte [edx + eax]
mov byte [esp + 8], bl
add bl, 0xf7
cmp bl, 0x17
ja 0x51cc80
movzx edx, bl
mov esi, 0x800013
bt esi, edx
jae 0x51cc80
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
setb bh
cmp ecx, eax
jne 0x51cc50
mov eax, ecx
test bh, 1
je 0x51d9c8
cmp byte [esp + 8], 0x3a
jne 0x51deed
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], 0
jae 0x51d939
mov dl, 1
mov dword [esp + 0xa4], 0
mov dword [esp + 0x30], edx
jmp 0x51ccd9
mov bl, 1
cmp eax, ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0xa4], ebx
jae 0x51d939
mov bl, 1
mov byte [esp + 0x34], dh
nop
mov edx, dword [esp + 0xc]
mov bh, byte [edx + eax]
mov byte [esp + 8], bh
add bh, 0xf7
cmp bh, 0x17
ja 0x51cd10
movzx edx, bh
mov esi, 0x800013
bt esi, edx
jae 0x51cd10
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
setb bl
cmp ecx, eax
jne 0x51cce0
mov eax, ecx
mov bh, byte [esp + 0x34]
test bl, 1
je 0x51d939
mov bl, byte [esp + 8]
add bl, 0xa5
cmp bl, 0x20
ja 0x51cd80
movzx edx, bl
mov edx, dword [edx*4 + 0x51e32c]
add edx, dword [esp + 0x8c]
jmp edx
mov cl, byte [esp + 8]
cmp cl, 0x22
je 0x51cf0d
cmp cl, 0x2d
jne 0x51cd99
inc eax
mov dword [esp + 0x1c], eax
jmp 0x51cda7
mov al, byte [esp + 8]
add al, 0xd0
cmp al, 0xa
jae 0x51e0a8
lea ecx, [esp + 0x14]
call fcn.00521980
test eax, eax
je 0x51cf30
jmp 0x51d9e7
inc eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], eax
call fcn.005b9800
test eax, eax
jne 0x51d9e7
nop word cs:[eax + eax]
nop dword [eax]
test byte [esp + 0x30], 1
mov dl, 1
je 0x51cf54
mov eax, dword [esp + 0x28]
test eax, eax
je 0x51d1f0
lea ecx, [eax - 1]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov bh, byte [ecx + eax - 1]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jae 0x51d9b8
mov dword [esp + 8], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov dh, bh
nop word [eax + eax]
mov bl, 1
mov byte [esp + 0x34], dh
nop word cs:[eax + eax]
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + eax]
mov bh, dl
add bh, 0xf7
cmp bh, 0x17
ja 0x51cfbf
movzx edi, bh
mov esi, 0x800013
bt esi, edi
jae 0x51cfbf
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
setb bl
cmp ecx, eax
jne 0x51cf90
mov eax, ecx
mov dh, byte [esp + 0x34]
test bl, 1
je 0x51d9ba
cmp dl, 0x5d
je 0x51cfe0
cmp dl, 0x7d
jne 0x51d020
cmp dh, 0x7b
je 0x51cfe5
jmp 0x51d040
cmp dh, 0x5b
jne 0x51d040
inc eax
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x51d1f0
lea edx, [ebx - 1]
cmp eax, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x30]
mov dh, byte [edx + ebx - 1]
mov bl, 1
mov dword [esp + 8], ebx
jb 0x51cf80
jmp 0x51d9ba
cmp dl, 0x2c
jne 0x51d040
cmp byte [esp + 8], 0
je 0x51d04b
inc eax
mov dword [esp + 0x1c], eax
jmp 0x51d04b
cmp byte [esp + 8], 0
jne 0x51defa
cmp dh, 0x7b
jne 0x51ccc0
cmp eax, ecx
jae 0x51d9c8
mov bl, 1
nop
mov edx, dword [esp + 0xc]
mov bh, byte [edx + eax]
mov dl, bh
add dl, 0xf7
cmp dl, 0x17
ja 0x51d08e
movzx edx, dl
mov edi, 0x800013
bt edi, edx
jae 0x51d08e
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
setb bl
cmp ecx, eax
jne 0x51d060
mov eax, ecx
test bl, 1
je 0x51d9c8
cmp bh, 0x22
jne 0x51d99b
inc eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], eax
call fcn.005b9800
test eax, eax
jne 0x51d9e7
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jae 0x51d9c8
mov edx, dword [esp + 0x14]
mov bl, 1
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
mov bh, byte [edx + eax]
mov dl, bh
add dl, 0xf7
cmp dl, 0x17
ja 0x51d0fe
movzx edx, dl
mov edi, 0x800013
bt edi, edx
jae 0x51d0fe
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
setb bl
cmp ecx, eax
jne 0x51d0d0
mov eax, ecx
test bl, 1
je 0x51d9c8
cmp bh, 0x3a
jne 0x51deed
mov dh, byte [esp + 0x34]
inc eax
mov dword [esp + 0x1c], eax
jmp 0x51ccc0
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, esi
jae 0x51d9c8
mov edx, dword [esp + 0x14]
mov cl, 1
mov dword [esp + 0xc], ecx
jmp 0x51c690
lea ecx, [esp + 0x14]
inc eax
lea edx, [esp + 0x98]
mov byte [esp + 0x2c], 0x7f
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], eax
mov byte [esp + 0x9c], 1
call fcn.00521d10
cmp dword [esp + 0x38], 1
je 0x51d332
cmp dword [esp + 0x3c], 1
jne 0x51d953
mov esi, dword [esp + 0x98]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cmp ecx, eax
jae 0x51d7ab
mov edi, dword [esi]
mov edx, dword [esp + 0x40]
mov bh, 1
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov edi, 0x800013
mov dword [esp + 0x8c], edx
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx]
mov bl, dl
add bl, 0xf7
cmp bl, 0x17
ja 0x51d2bd
movzx esi, bl
bt edi, esi
mov esi, dword [esp + 0xc]
jae 0x51d2bd
inc ecx
cmp ecx, eax
mov dword [esi + 8], ecx
setb bh
cmp eax, ecx
jne 0x51d290
mov ecx, eax
test bh, 1
je 0x51d7ab
cmp dl, 0x2c
je 0x51d2fd
cmp dl, 0x5d
je 0x51d961
cmp byte [esp + 0x9c], 0
jne 0x51d30b
jmp 0x51df3b
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 5
call fcn.0046b5d0
jmp 0x51dcc6
cmp byte [esp + 0x9c], 0
je 0x51d7b8
mov byte [esp + 0x9c], 0
cmp dl, 0x5d
je 0x51d946
lea ecx, [esp + 0x38]
mov edx, esi
call fcn.00531c30
cmp dword [esp + 0x38], 1
jne 0x51d4c6
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov al, 1
mov ebx, 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
inc byte [esp + 0x2c]
lea ecx, [esp + 0x14]
call fcn.00520e20
mov edi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x38], ebx
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc8]
mov ecx, dword [esp + 0x90]
cmp byte [esp + 0xc], 0
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0x40], al
movsd qword [esp + 0x41], xmm0
movsd xmm0, qword [esp + 0xcf]
mov eax, dword [esp + 0x94]
movsd qword [esp + 0x49], xmm1
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x74], ch
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x75], ch
mov ecx, esi
mov dword [esp + 0x78], edi
je 0x51d423
mov ebx, 1
test edi, edi
je 0x51d44b
mov edi, ecx
lea ecx, [esp + 0x78]
mov esi, eax
call fcn.00520f00
mov eax, esi
mov esi, dword [esp + 8]
mov ecx, edi
jmp 0x51dc3a
test edi, edi
je 0x51d454
mov ebx, 1
test ecx, ecx
je 0x51dc38
push eax
push 0
push dword [0x6f1130]
mov esi, ecx
call sub.KERNEL32.dll_HeapFree
mov ecx, esi
jmp 0x51dc34
mov esi, dword [esp + 8]
jmp 0x51dc3a
mov edx, eax
lea eax, [esp + 0x40]
mov esi, ecx
xor ebx, ebx
movsd xmm1, qword [eax + 0x10]
mov ecx, dword [eax + 0x20]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0xe8], xmm1
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x74]
mov dword [esp + 0xf8], ecx
mov ecx, esi
mov esi, dword [esp + 8]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xd8], xmm2
movsd qword [esp + 0xe0], xmm1
movsd xmm1, qword [esp + 0x6c]
mov dword [esp + 0xa0], eax
mov eax, edx
movsd qword [esp + 0x98], xmm1
jmp 0x51dc3a
mov dh, byte [esp + 0x40]
movsd xmm0, qword [esp + 0x41]
movsd xmm2, qword [esp + 0x49]
movsd xmm1, qword [esp + 0x50]
cmp dh, 6
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xd8], xmm0
movsd qword [esp + 0xe7], xmm1
je 0x51d961
movsd xmm0, qword [esp + 0xe7]
movsd xmm2, qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xe0]
movsd qword [esp + 0x10f], xmm0
movsd qword [esp + 0x108], xmm1
movsd qword [esp + 0x100], xmm2
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cmp ecx, eax
jae 0x51d7ab
mov edi, dword [esi]
mov bh, 1
mov dword [esp + 8], edi
nop dword [eax]
mov edi, dword [esp + 8]
mov dl, byte [edi + ecx]
mov bl, dl
add bl, 0xf7
cmp bl, 0x17
ja 0x51d581
movzx esi, bl
mov edi, 0x800013
bt edi, esi
mov esi, dword [esp + 0xc]
jae 0x51d581
inc ecx
cmp ecx, eax
mov dword [esi + 8], ecx
setb bh
cmp eax, ecx
jne 0x51d550
mov ecx, eax
test bh, 1
je 0x51d7ab
cmp dl, 0x2c
jne 0x51d9a5
lea edi, [ecx + 1]
mov byte [esp + 0xa4], dh
cmp edi, eax
mov dword [esi + 8], edi
jae 0x51d826
mov edx, eax
add ecx, 2
mov bh, 1
mov esi, 0x800013
neg edx
mov dword [esp + 0x34], edx
nop word [eax + eax]
mov edx, dword [esp + 8]
mov bl, byte [edx + ecx - 1]
mov edx, ebx
add dl, 0xf7
cmp dl, 0x17
ja 0x51d5f4
movzx edx, dl
bt esi, edx
jae 0x51d5f4
mov edx, dword [esp + 0xc]
cmp ecx, eax
setb bh
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x34]
lea edx, [edx + ecx + 1]
inc ecx
cmp edx, 1
jne 0x51d5c0
mov esi, dword [esp + 0xc]
test bh, 1
je 0x51d826
cmp bl, 0x5d
je 0x51d946
mov ecx, esi
call fcn.00531a20
test al, 1
mov dword [esp + 8], edx
jne 0x51d33a
mov edx, eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cmp ecx, eax
jae 0x51d7ab
mov edi, dword [esi]
and dh, 1
mov bh, 1
mov dword [esp + 0x34], edx
mov dword [esp + 8], edi
mov edi, 0x800013
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx]
mov bl, dl
add bl, 0xf7
cmp bl, 0x17
ja 0x51d67d
movzx esi, bl
bt edi, esi
mov esi, dword [esp + 0xc]
jae 0x51d67d
inc ecx
cmp ecx, eax
mov dword [esi + 8], ecx
setb bh
cmp eax, ecx
jne 0x51d650
mov ecx, eax
test bh, 1
je 0x51d7ab
cmp dl, 0x2c
jne 0x51df22
lea edx, [ecx + 1]
cmp edx, eax
mov dword [esi + 8], edx
jae 0x51d826
mov edx, eax
add ecx, 2
mov bh, 1
mov esi, 0x800013
neg edx
mov dword [esp + 0x30], edx
nop
mov edx, dword [esp + 8]
mov bl, byte [edx + ecx - 1]
mov edx, ebx
add dl, 0xf7
cmp dl, 0x17
ja 0x51d6e4
movzx edx, dl
bt esi, edx
jae 0x51d6e4
mov edx, dword [esp + 0xc]
cmp ecx, eax
setb bh
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x30]
lea edx, [edx + ecx + 1]
inc ecx
cmp edx, 1
jne 0x51d6b0
mov esi, dword [esp + 0xc]
test bh, 1
je 0x51d826
cmp bl, 0x5d
je 0x51d946
lea ecx, [esp + 0x38]
mov edx, esi
call fcn.005070a0
cmp dword [esp + 0x38], 1
je 0x51d332
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x51df27
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x98]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
lea ecx, [esp + 0x38]
call fcn.00520c70
cmp dword [esp + 0x38], 1
je 0x51d777
mov eax, dword [esp + 0x40]
xor eax, 1
or eax, dword [esp + 0x44]
jne 0x51e20b
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x98]
call fcn.00521d10
cmp dword [esp + 0x38], 1
jne 0x51df7b
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 8], edx
test ecx, ecx
je 0x51d33a
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x51d33a
mov edi, dword [esp + 0x3c]
jmp 0x51d9e9
mov dword [esp + 0x38], 2
jmp 0x51df43
lea edx, [ecx + 1]
cmp edx, eax
mov dword [esi + 8], edx
jae 0x51d826
mov edx, eax
add ecx, 2
mov ebx, 0x800013
mov byte [esp + 0x34], 1
neg edx
mov dword [esp + 0x30], edx
nop word [eax + eax]
mov edx, dword [esp + 8]
movzx edx, byte [edx + ecx - 1]
mov dh, dl
add dh, 0xf7
cmp dh, 0x17
ja 0x51d817
movzx esi, dh
bt ebx, esi
jae 0x51d817
mov esi, dword [esp + 0xc]
cmp ecx, eax
setb byte [esp + 0x34]
mov dword [esi + 8], ecx
mov esi, dword [esp + 0x30]
lea esi, [esi + ecx + 1]
inc ecx
cmp esi, 1
jne 0x51d7e0
test byte [esp + 0x34], 1
mov esi, dword [esp + 0xc]
jne 0x51d313
mov dword [esp + 0x38], 5
jmp 0x51df43
cmp dword [esp + 0x84], 1
jne 0x51df53
cmp byte [esp + 0x94], 6
je 0x51df67
mov ecx, dword [esp + 0x88]
cmp ch, 2
je 0x51e042
cmp dword [esp + 0x10], 0
je 0x51e056
mov ecx, dword [esp + 0xb0]
xor ecx, 1
or ecx, dword [esp + 0xb4]
jne 0x51e077
cmp dword [esp + 0x90], 1
jne 0x51e083
mov ecx, dword [esp + 0x88]
movsd xmm0, qword [esp + 0xe7]
movsd xmm1, qword [esp + 0xe0]
mov edi, 2
mov dword [esp + 0xc], 0
mov dword [esp + 0x34], 0
and ch, 1
movsd qword [esp + 0x10f], xmm0
movsd xmm0, qword [esp + 0xd8]
movsd qword [esp + 0x108], xmm1
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xac]
movsd qword [esp + 0x100], xmm0
cmp ch, 3
movzx ecx, ch
cmovne edi, ecx
mov cl, 1
mov dword [esp + 8], edi
mov dword [esp + 0x8c], ecx
jmp 0x51da37
lea ecx, [esp + 0x14]
lea edx, [esp + 0xbc]
push 0x684bb0
call fcn.0051e600
add esp, 4
mov esi, eax
jmp 0x51dcdb
mov dword [esp + 0x10], 0
jmp 0x51d9c8
mov dword [esp + 0x38], 5
jmp 0x51d9da
mov dword [esp + 0x38], 0x12
jmp 0x51df43
xor ecx, ecx
jmp 0x51df2c
mov ecx, 1
jmp 0x51df2c
cmp bl, 0x7d
jne 0x51d99b
mov dword [esp + 0x38], 0x12
jmp 0x51d9da
mov dword [esp + 0x38], 0x10
jmp 0x51d9da
cmp dl, 0x5d
jne 0x51df3b
mov ecx, 2
jmp 0x51df2c
mov dh, bh
cmp dh, 0x5b
je 0x51d9d2
cmp dh, 0x7b
jne 0x51e2d9
mov dword [esp + 0x38], 3
jmp 0x51d9da
mov dword [esp + 0x38], 2
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
call fcn.0046b5d0
mov edi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 4]
test eax, eax
je 0x51da07
test ecx, ecx
je 0x51da07
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov al, 1
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x8c], 0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
inc byte [esp + 0x2c]
cmp eax, esi
jae 0x51de4d
mov dword [esp + 0x30], edi
mov bh, 1
mov edi, 0x800013
nop
mov bl, byte [edx + eax]
mov ecx, ebx
add cl, 0xf7
cmp cl, 0x17
ja 0x51da75
movzx ecx, cl
bt edi, ecx
jae 0x51da75
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
setb bh
cmp esi, eax
jne 0x51da50
mov eax, esi
mov edi, dword [esp + 0x30]
test bh, 1
je 0x51de4d
cmp bl, 0x7d
jne 0x51debb
mov esi, dword [esp + 0xa8]
inc eax
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
movsd xmm0, qword [esp + 0x100]
movsd xmm1, qword [esp + 0x108]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x120]
cmp byte [esp + 0xc], 0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x94]
mov dword [esp + 0x3c], edi
mov byte [esp + 0x40], al
movsd qword [esp + 0x41], xmm0
movsd xmm0, qword [esp + 0x10f]
mov eax, dword [esp + 0x11c]
movsd qword [esp + 0x49], xmm1
movsd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x88]
mov esi, ebx
mov byte [esp + 0x74], dh
mov edx, dword [esp + 8]
mov byte [esp + 0x75], dl
mov dword [esp + 0x78], ebx
je 0x51db51
mov ebx, 1
mov dl, 1
test dl, dl
jne 0x51dc23
jmp 0x51dc38
test esi, esi
sete dl
je 0x51db93
cmp byte [esp + 0x8c], 0
mov ebx, 1
je 0x51dc04
mov ebx, 1
test ecx, ecx
je 0x51dc3a
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
jmp 0x51dc3a
lea eax, [esp + 0x40]
xor ebx, ebx
cmp byte [esp + 0x8c], 0
movsd xmm1, qword [eax + 0x10]
mov ecx, dword [eax + 0x20]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0xe8], xmm1
movsd xmm1, qword [eax + 8]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 4]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xd8], xmm2
movsd qword [esp + 0xe0], xmm1
movsd xmm1, qword [eax + 0x2c]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10]
movsd qword [esp + 0x98], xmm1
jne 0x51dc3a
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc], dl
call fcn.00520f00
mov dl, byte [esp + 0xc]
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov edi, esi
test dl, dl
je 0x51dc38
test esi, esi
je 0x51dc38
lea ecx, [esp + 0x78]
call fcn.00520f00
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov esi, edi
test ebx, ebx
jne 0x51dcdb
movsd xmm1, qword [esp + 0xe8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0xf0]
movsd xmm2, qword [esp + 0xd8]
mov dword [esp + 4], ecx
xor ecx, ecx
movsd qword [esp + 0x180], xmm1
movsd xmm1, qword [esp + 0xe0]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0xa0]
movsd qword [esp + 0x188], xmm0
movsd qword [esp + 0x170], xmm2
movsd qword [esp + 0x178], xmm1
movsd xmm1, qword [esp + 0x98]
mov dword [esp + 0x140], eax
movsd qword [esp + 0x138], xmm1
test ecx, ecx
je 0x51dcef
mov ecx, dword [esp + 0xb8]
mov dword [ecx + 4], eax
mov dword [ecx], 1
jmp 0x51de2d
lea edx, [esp + 0x14]
mov ecx, esi
call fcn.00524320
mov ecx, 1
test ecx, ecx
jne 0x51dcc6
mov eax, dword [esp + 0x190]
movsd xmm1, qword [esp + 0x180]
mov ecx, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x188]
movsd xmm2, qword [esp + 0x170]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x140]
movsd qword [esp + 0x158], xmm1
movsd xmm1, qword [esp + 0x178]
movsd qword [esp + 0x160], xmm0
movsd qword [esp + 0x148], xmm2
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x18]
movsd qword [esp + 0x150], xmm1
movsd xmm1, qword [esp + 0x138]
cmp ecx, eax
movsd qword [esp + 0x128], xmm1
jae 0x51ddb8
mov edx, dword [esp + 0x14]
mov esi, eax
inc ecx
mov bl, 1
neg esi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
mov bh, byte [edx + ecx - 1]
add bh, 0xf7
cmp bh, 0x17
ja 0x51de70
movzx edi, bh
mov edx, 0x800013
bt edx, edi
jae 0x51de70
cmp ecx, eax
lea edi, [esi + ecx + 1]
mov dword [esp + 0x1c], ecx
setb bl
inc ecx
cmp edi, 1
jne 0x51dd80
mov ecx, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0x160]
mov eax, dword [esp + 0x168]
movsd xmm1, qword [esp + 0x150]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x130]
movsd qword [ecx + 0x20], xmm0
movsd xmm0, qword [esp + 0x158]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x10]
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0x148]
movsd qword [ecx + 8], xmm0
movsd xmm0, qword [esp + 0x128]
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x3c], edx
movsd qword [ecx + 0x34], xmm0
mov dword [ecx], 0
cmp dword [esp + 0x24], 0
je 0x51de45
push dword [esp + 0x20]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 3
call fcn.0046b5d0
mov esi, dword [esp + 0xa8]
mov ebx, eax
jmp 0x51da99
test bl, 1
je 0x51ddb8
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0x13
call fcn.0046b5d0
mov ecx, dword [esp + 0xb8]
cmp dword [esp + 4], 0
mov dword [ecx + 4], eax
mov dword [ecx], 1
je 0x51de2d
push dword [esp + 0x10]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x51de2d
mov esi, dword [esp + 0xa8]
cmp bl, 0x2c
jne 0x51ded1
mov dword [esp + 0x38], 0x12
jmp 0x51ded9
mov dword [esp + 0x38], 0x13
lea ecx, [esp + 0x14]
lea edx, [esp + 0x38]
call fcn.0046b5d0
mov ebx, eax
jmp 0x51da99
mov dword [esp + 0x38], 6
jmp 0x51d9da
cmp dh, 0x5b
je 0x51e06a
cmp dh, 0x7b
jne 0x51e2f2
mov dword [esp + 0x38], 8
jmp 0x51d9da
cmp dl, 0x5d
jne 0x51df3b
mov ecx, 3
mov edx, 0x684c90
call fcn.0052a5d0
jmp 0x51d336
mov dword [esp + 0x38], 7
lea edx, [esp + 0x38]
mov ecx, esi
call fcn.0046b5d0
jmp 0x51d336
mov ecx, 0x6857a6
mov edx, 7
call fcn.0052a580
jmp 0x51d9e7
mov ecx, 0x6857ad
mov edx, 4
call fcn.0052a580
jmp 0x51d9e7
cmp dword [esp + 0x3c], 1
jne 0x51e2a0
mov eax, dword [esp + 0x98]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x88], esi
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0xc], eax
cmp edx, ecx
mov dword [esp + 8], ecx
jae 0x51e215
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x40]
mov bh, 1
mov ecx, 0x800013
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov bl, byte [eax + edx]
mov byte [esp + 0x84], bl
add bl, 0xf7
cmp bl, 0x17
ja 0x51e005
mov eax, esi
mov esi, edi
movzx edi, bl
bt ecx, edi
mov edi, esi
mov esi, eax
jae 0x51e005
mov eax, dword [esp + 0xc]
inc edx
mov dword [eax + 8], edx
mov eax, dword [esp + 8]
cmp edx, eax
setb bh
cmp eax, edx
jne 0x51dfc6
mov edx, dword [esp + 8]
mov cl, byte [esp + 0x84]
test bh, 1
je 0x51e215
cmp cl, 0x2c
je 0x51e0c5
cmp cl, 0x5d
je 0x51e2a7
cmp byte [esp + 0x9c], 0
jne 0x51e0d3
mov dword [esp + 0x38], 7
jmp 0x51e2c5
mov ecx, 0x6857b1
mov edx, 6
call fcn.0052a580
jmp 0x51d9e7
mov ecx, 0x6857b7
mov edx, 0xb
call fcn.0052a580
jmp 0x51e299
mov dword [esp + 0x38], 7
jmp 0x51d9da
mov ecx, 0x6857c2
mov edx, 9
jmp 0x51e08d
mov ecx, 0x6857cb
mov edx, 0xa
call fcn.0052a580
mov edi, eax
cmp dword [esp + 4], 0
mov eax, dword [esp + 0x10]
jne 0x51d9f9
jmp 0x51da07
mov dword [esp + 0x38], 0xa
jmp 0x51d9da
cmp byte [esp + 0x9c], 0
je 0x51e186
mov byte [esp + 0x9c], 0
cmp cl, 0x5d
je 0x51e2bd
mov ecx, dword [esp + 0xc]
call fcn.00505030
test al, 1
jne 0x51d77b
cmp ah, 3
je 0x51e2a7
movsd xmm0, qword [esp + 0x10f]
movsd xmm2, qword [esp + 0x100]
mov dword [esp + 0x84], esi
movsd xmm1, qword [esp + 0x108]
mov esi, dword [esp + 4]
mov ecx, eax
xor ebx, ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x90], edi
mov dword [esp + 0x30], ecx
movsd qword [esp + 0xcf], xmm0
movsd qword [esp + 0xc8], xmm1
movsd qword [esp + 0xc0], xmm2
jmp 0x51d34d
mov eax, dword [esp + 0xc]
lea ecx, [edx + 1]
mov dword [eax + 8], ecx
mov eax, dword [esp + 8]
cmp ecx, eax
jae 0x51e1fe
mov dword [esp + 0x84], esi
mov esi, eax
add edx, 2
mov bh, 1
mov dword [esp + 0x90], edi
neg esi
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax + edx - 1]
mov ch, cl
add ch, 0xf7
cmp ch, 0x17
ja 0x51e1e7
movzx edi, ch
mov eax, 0x800013
bt eax, edi
jae 0x51e1e7
mov eax, dword [esp + 0xc]
cmp edx, dword [esp + 8]
lea edi, [esi + edx + 1]
mov dword [eax + 8], edx
setb bh
inc edx
cmp edi, 1
jne 0x51e1af
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x84]
test bh, 1
jne 0x51e0db
mov dword [esp + 0x38], 5
jmp 0x51e2c5
mov ecx, 4
jmp 0x51e2ac
mov dword [esp + 0x38], 2
jmp 0x51e2c5
mov edi, eax
jmp 0x51da07
mov ecx, 5
jmp 0x51e2ac
mov ecx, 6
mov edx, 0x684c90
call fcn.0052a5d0
mov edx, eax
jmp 0x51d77b
mov dword [esp + 0x38], 0x12
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x38]
call fcn.0046b5d0
mov edx, eax
jmp 0x51d77b
mov ecx, str.internal_error:_entered_unreachable_codeDfm
mov edx, 0x28
push 0x684ab0
call fcn.0045aec0
add esp, 4
ud2
mov ecx, str.internal_error:_entered_unreachable_codeDfm
mov edx, 0x28
push 0x684aa0
call fcn.0045aec0
add esp, 4
ud2