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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc0
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
sub esp, 0x10
mov dword [esp + 0x1c], ecx
and al, 0x1c
mov eax, dword [esi + 4]
mov dword [esp + 0x3c], 3
mov edx, dword [edi]
mov eax, dword [eax + edx*4]
mov edx, esp
movsx ecx, word [eax + 0xa]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0xc], eax
add ecx, 0x13c
inc dword [eax]
call fcn.0040c1f0
mov dword [esp + 0x54], eax
test eax, eax
je 0x451965
mov eax, dword [esp + 0xc]
mov ecx, dword [edi]
mov edx, dword [esi + 4]
inc ecx
mov dword [esp + 0x84], 1
mov eax, dword [eax + 0x150]
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x64], 0x49dcd8
mov dword [esp + 0x40], 0x49dcdc
mov dword [edi], ecx
cmp word [eax + 8], 0x47
mov eax, dword [0x49d470]
mov dword [esp + 0x88], eax
jne 0x451980
inc ecx
xor esi, esi
mov dword [edi], ecx
mov dword [esp + 0x38], ecx
mov edi, edi
mov edi, dword [edi]
mov eax, dword [edx + edi*4]
movsx eax, word [eax + 8]
cmp eax, 0x47
jge 0x40d498
lea eax, [edi + 1]
mov edi, dword [ebp + 0x10]
mov dword [edi], eax
jmp 0x40d480
sub eax, 0x47
je 0x4519a7
sub eax, 1
jne 0x45198e
inc esp
add al, 0
test esi, esi
jne 0x4519a1
mov esi, dword [ebp + 0x10]
lea eax, [edi + 1]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
cmp eax, dword [0x4d33d0]
jg 0x4519ad
test eax, eax
jle 0x4519ad
shl eax, 4
add eax, dword [0x4d340c]
mov dword [esp + 0x50], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
cmp word [ecx + 8], 0
jne 0x40d4fb
cmp dword [ecx], 0x2b
je 0x4519b4
mov edx, 3
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], 0
mov dword [esp + 0x14], 0
cmp dword [ecx + 0x14], 0
mov ecx, dword [esp + 0x38]
jg 0x40dd35
mov al, byte [ebp + 8]
mov edx, dword [esp + 0x30]
test al, al
jne 0x451abd
mov esi, dword [esp + 0x54]
cmp edx, dword [esi + 0x18]
mov esi, dword [ebp + 0x10]
jl 0x452014
mov esi, dword [esp + 0x54]
cmp edx, dword [esi + 0x14]
mov esi, dword [ebp + 0x10]
jg 0x452014
adc byte [edi], cl
invalid
cmp ecx, edi
jne 0x452014
mov edi, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x40], edx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x44], eax
test eax, eax
js 0x451bd2
cmp byte [0x4d33b9], dl
jne 0x451bdb
push 0xc
call fcn.0042014b
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
mov dword [edi], 0
mov ecx, dword [esp + 0x44]
mov dword [edi + 4], ecx
test ecx, ecx
js 0x451bfe
push dword [esp + 0x40]
mov ecx, edi
push edi
call fcn.0040c32d
mov eax, dword [0x4d33b4]
mov dword [edi + 8], eax
mov dword [0x4d33b4], edi
mov edi, dword [esp + 0x54]
inc dword [0x4d33b0]
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x451c0a
cmp dword [edi + 0x14], 1
jge 0x40d9db
add eax, dword [eax]
add byte [ebx - 0x74f3db8c], cl
inc esp
and al, 0x30
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], 0
add byte [eax], al
add byte [eax], al
mov dword [esp + 0x98], 0
mov dword [esi + 0x150], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], al
mov dword [esp + 0xb0], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xb8], eax
mov eax, 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0xbc], eax
mov eax, dword [esi]
mov dword [esp + 0x9c], 1
mov byte [esp + 0xa0], 0
mov byte [esp + 0xc0], 0
mov edi, dword [eax + 4]
add edi, esi
cmp byte [edi + 0xd], 0
jne 0x451e38
push 0x40
call fcn.0042014b
mov esi, eax
add esp, 4
lea eax, [esp + 0x90]
mov ecx, esi
push eax
mov dword [esi + 8], 0
call fcn.00411890
lea eax, [esp + 0xb0]
mov byte [esi + 0x10], 0
lea ecx, [esi + 0x20]
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], 0
push eax
mov dword [ecx + 8], 0
call fcn.00411890
mov byte [esi + 0x30], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x38], eax
mov dword [edi + 8], esi
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
inc dword [edi + 4]
mov ecx, dword [esi + 0x164]
mov edi, dword [esi + 0xf8]
mov eax, dword [eax + 0x10]
inc eax
mov dword [esp + 0x14], ecx
and al, 0x14
mov ecx, dword [esp + 0xc]
push eax
mov dword [esp + 0x44], edi
call fcn.0040ee60
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x164]
jb 0x451e51
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov dword [ecx + 0xf8], edi
mov eax, dword [eax + 4]
add eax, ecx
mov cl, byte [eax + 0xd]
mov edi, dword [eax + 8]
test cl, cl
jne 0x451e71
mov eax, edi
cmp byte [eax + 0x10], 0
mov eax, dword [ebp + 0x18]
je 0x40df86
mov byte [eax], 1
test cl, cl
jne 0x451e79
mov esi, dword [ebp + 0x14]
cmp esi, edi
je 0x40d752
cmp dword [esi + 0xc], 4
je 0x451e81
mov ecx, esi
call fcn.0040e6a0
push edi
mov ecx, esi
call fcn.00411890
mov edi, dword [esp + 0xc]
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov cl, byte [eax + edi + 0xd]
mov eax, dword [eax + edi + 8]
test cl, cl
jne 0x451ea4
mov esi, eax
cmp byte [esi + 0x18], 0
jne 0x451eac
test cl, cl
jne 0x451ece
mov esi, eax
cmp byte [esi + 0x30], 0
jne 0x451ed6
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea esi, [eax + edi]
cmp byte [0x38348d00], cl
jne 0x451f15
cmp byte [esi + 0xc], 0
jne 0x451f35
add al, 0
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x40], eax
test edi, edi
je 0x40d7d2
lea ecx, [edi + 0x20]
call fcn.0040e6a0
dec edi
and al, ch
in al, 0xe
add byte [eax], al
mov ecx, edi
call fcn.0040e6a0
push 0x40
push edi
call fcn.0042013d
mov eax, dword [esp + 0x48]
add esp, 8
mov edi, dword [esp + 0xc]
mov dword [esi + 8], eax
xor al, al
mov byte [esi + 0xd], al
dec dword [esi + 4]
mov eax, dword [edi]
mov eax, dword [eax + 4]
add eax, edi
cmp byte [eax + 0xd], 0
mov ecx, dword [eax + 8]
jne 0x451f3c
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov ecx, dword [eax + 8]
jne 0x451f44
mov byte [ecx + 0x18], 0
mov eax, dword [edi]
mov esi, dword [eax + 4]
add esi, edi
cmp byte [esi + 0xd], 0
mov edi, dword [esi + 8]
jne 0x451f4c
add edi, 0x20
lea eax, [esp + 0xb0]
cmp edi, eax
je 0x40d84f
cmp dword [edi + 0xc], 4
je 0x451f54
mov ecx, edi
call fcn.0040e6a0
lea eax, [esp + 0xb0]
mov ecx, edi
push eax
call fcn.00411890
iretd
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 8]
jne 0x451f79
mov byte [eax + 0x30], 0
cmp byte [0x4d33b9], 0
jne 0x451f81
test dword [edi + eax*2], edx
add al, 0
mov edi, dword [0x4d33b4]
mov dword [esp + 0x18], edi
cmp byte [0x4d33b8], 0
jne 0x451fa6
mov esi, dword [edi]
mov eax, dword [edi + 8]
mov dword [esp + 0x74], eax
test esi, esi
je 0x40d93f
test byte [edx - 0x75000000], ch
inc esi
sbb byte [ebp + 0x500874c0], al
mov eax, dword [esi + 0x18]
test eax, eax
je 0x40d8a4
push eax
mov ecx, edi
call fcn.0040c3ab
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x40dfa5
cmp byte [esi + 0x10], 0
jne 0x40d92d
mov edi, dword [esi + 0x14]
test edi, edi
je 0x40d929
mov ecx, dword [edi + 8]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x40d905
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0
jne 0x40d8f3
push dword [ecx]
call fcn.00420184
mov eax, dword [esp + 0x18]
add esp, 4
push 4
push dword [eax + 0xc]
call fcn.0042013d
mov ecx, dword [esp + 0x1c]
add esp, 8
push 0x10
push ecx
call fcn.0042013d
add esp, 8
mov dword [edi + 8], 0
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x40e0f4
push 0x10
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0042013d
add esp, 8
mov edi, dword [esp + 0x18]
jl 0x40d950
sbb byte [ebx - 0x1b9b1732], cl
invalid
mov ecx, esi
call fcn.0040bd98
push 0x20
push esi
call fcn.0042013d
add esp, 8
push 0xc
push edi
call fcn.0042013d
mov eax, dword [esp + 0x7c]
add esp, 8
mov dword [0x4d33b4], eax
xor ecx, dword [ebp]
mov byte [0x4d33b9], 0
mov eax, dword [esp + 0xc]
dec dword [0x4d33b0]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], 0
mov dword [eax + 0x150], ecx
lea ecx, [esp + 0xb0]
call fcn.0040e6a0
lea ecx, [esp + 0x90]
call fcn.0040e6a0
lea ecx, [esp + 0x78]
call fcn.0040e6a0
mov edi, dword [esp + 0x58]
xor esi, esi
mov eax, dword [esp + 0x24]
test edi, edi
jne 0x40df52
add byte [eax], al
push eax
call fcn.00420184
mov eax, dword [esp + 0x40]
add esp, 4
xor edi, edi
test eax, eax
jne 0x40dc92
push dword [esp + 0x28]
call fcn.00420184
mov eax, dword [esp + 0x1c]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x18], 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x74], eax
add byte [ecx - 0x76a3dbb4], cl
inc esp
and al, 0x74
mov eax, dword [esp + 0x50]
xor edi, edi
mov esi, dword [esp + 0x2c]
lea edx, [esi*4]
mov ecx, dword [eax + 4]
mov dword [esp + 0x60], ecx
mov eax, dword [ecx + edx]
cmp word [eax + 8], di
je 0x451c5f
mov edx, dword [esp + 0x2c]
xor esi, esi
inc edx
mov dword [esp + 0x20], 1
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx]
movzx eax, word [eax + 8]
cmp ax, 0x47
mov bh, 0x40
or byte [esi - 0x7d], ah
clc
inc edi
je 0x451c8e
cmp ax, 0x48
je 0x40df74
cmp ax, 0x40
jne 0x40df7d
test esi, esi
jne 0x40df7d
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x18], eax
jg 0x451dbf
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + edx]
cmp byte [eax], 0
jne 0x451c94
mov eax, dword [esp + 0x2c]
or edi, 0x200
cmp dword [0x4d33b0], 0
mov edx, dword [edx]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + eax*4]
mov esi, dword [eax]
mov dword [esp + 0x60], esi
je 0x451ccb
xor al, al
test al, al
jne 0x451cd2
cmp byte [0x4d33b9], 0
mov eax, dword [esp + 0x10]
jne 0x451ce8
push eax
push esi
call fcn.0040cf80
test al, al
jne 0x451cf4
and edi, 0xff00
push 0x20
mov dword [esp + 0x20], edi
call fcn.0042014b
mov edi, eax
add esp, 4
mov dword [esp + 0x34], edi
push 0x10
mov dword [edi + 4], 0
mov dword [edi + 8], 8
call fcn.0042017b
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.0042014b
mov ecx, eax
add esp, 4
mov dword [ecx], 1
mov dword [edi + 0xc], ecx
cmp edi, esi
je 0x40db71
mov edx, dword [ecx]
cmp edx, 1
jg 0x451d17
xor al, al
test al, al
jne 0x451d1e
mov esi, dword [esi + 4]
mov dword [edi + 4], esi
lea ecx, [esi + 1]
cmp dword [edi + 8], ecx
jb 0x451d40
add byte [eax + 0xfc08401], dh
test dh, ch
inc ecx
add al, 0
mov al, 1
test al, al
je 0x451d47
lea eax, [esi*2 + 2]
push eax
mov eax, dword [esp + 0x64]
push dword [eax]
push dword [edi]
call fcn.00421190
and dh, byte [esi]
add dword [eax], eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
inc esp
and al, 0x1c
push 0x10
mov dword [edi + 0x10], eax
call fcn.0042014b
add esp, 4
mov esi, eax
mov ecx, esi
push dword [esp + 0x14]
mov dword [esi + 8], 0
call fcn.00411890
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], esi
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x40dc53
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.0040cf80
mov ecx, dword [esp + 0x1c]
mov edi, dword [edi + 4]
mov edx, dword [ecx + 4]
test edi, edi
je 0x451d91
test edx, edx
je 0x451d9e
cmp edi, edx
jb 0x40dfb2
mov esi, dword [esp + 0x34]
mov edx, dword [ecx]
mov esi, dword [esi]
test edi, edi
je 0x451daf
movzx eax, word [esi]
mov dword [esp + 0x14], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x60], ecx
movzx ecx, word [esi]
cmp cx, ax
jne 0x40dc1e
add esi, 2
add edx, 2
sub edi, 1
jne 0x40dbf6
jmp 0x451daf
mov eax, dword [esp + 0x60]
cmp word [esp + 0x14], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov edi, dword [esp + 0x34]
test eax, eax
js 0x40e047
jle 0x451db6
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], ecx
mov dword [ecx + 0x1c], 0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov dword [eax], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
cmp byte [ebx - 0x74d3dbbc], cl
dec esp
and al, 0x54
inc eax
add dword [esp + 0x5c], 4
add eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [ecx + 0x14]
jg 0x40d5e1
mov esi, dword [0x4d33b4]
mov dword [esp + 0x10], esi
jmp 0x40d9f5
mov ecx, dword [esp + 0x28]
jmp 0x40dca0
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x40dd20
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x40dcf4
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0
jne 0x40dce2
push dword [ecx]
call fcn.00420184
mov eax, dword [esp + 0x18]
add esp, 4
push 4
push dword [eax + 0xc]
call fcn.0042013d
mov ecx, dword [esp + 0x1c]
add esp, 8
push 0x10
push ecx
call fcn.0042013d
add esp, 8
mov dword [esi + 8], 0
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x40e060
push 0x10
push esi
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.0042013d
mov eax, dword [esp + 0x44]
add esp, 8
mov ecx, dword [esp + 0x28]
mov dword [ecx + edi*4], 0
inc edi
cmp edi, eax
jb 0x40dca0
jmp 0x40d9c3
cmp ecx, edi
jae 0x40d526
mov eax, dword [eax + edx*4]
lea esi, [edx*4]
inc dword [esp + 0x30]
mov dword [esp + 0x5c], 0
mov byte [esp + 0xb], 0
cmp word [eax + 8], 0
je 0x4519c2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0x33
je 0x40dd78
mov byte [esp + 0xb], 0
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x58], eax
je 0x40deb6
push 1
call fcn.0042014b
mov cl, byte [esp + 0xf]
add esp, 4
mov edx, dword [esp + 0x24]
mov byte [eax], cl
mov ecx, dword [esp + 0x58]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x78]
call fcn.0040e6a0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x84], 1
mov dword [esp + 0x78], 0
cmp dword [esp + 0x3c], eax
je 0x40df04
push 0x10
call fcn.0042014b
mov esi, eax
add esp, 4
lea eax, [esp + 0x78]
mov ecx, esi
push eax
mov dword [esi + 8], 0
call fcn.00411890
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
push edi
mov dword [ecx + eax*4], esi
inc eax
cmp byte [esp + 0xf], 0
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x70], eax
jne 0x451a2b
push dword [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00410340
test eax, eax
js 0x45202d
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x41
je 0x40e010
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x40d526
mov esi, dword [esi + 4]
mov eax, dword [esi + ecx*4]
cmp word [eax + 8], 0x40
jne 0x451aa5
lea eax, [ecx + 1]
cmp eax, edi
je 0x451aa5
mov ecx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x40
jne 0x40de97
inc edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x54]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x14]
jge 0x40d526
mov eax, dword [esp + 0x20]
jmp 0x40dd35
add eax, eax
mov dword [esp + 0x1c], eax
cmp eax, 8
jae 0x40deca
mov eax, 8
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042017b
mov edx, dword [esp + 0x28]
add esp, 4
mov esi, eax
test edx, edx
jne 0x40e088
mov eax, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], eax
jmp 0x40dd86
add eax, eax
mov dword [esp + 0x34], eax
cmp eax, 8
jae 0x40df18
mov eax, 8
mov dword [esp + 0x34], eax
xor ecx, ecx
mov dword [esp + 0x70], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042017b
mov edx, dword [esp + 0x2c]
add esp, 4
mov esi, eax
test edx, edx
jne 0x40e0b7
mov eax, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], eax
jmp 0x40ddd4
push 1
push dword [eax + esi*4]
call fcn.0042013d
mov eax, dword [esp + 0x2c]
add esp, 8
mov dword [eax + esi*4], 0
inc esi
cmp esi, edi
jb 0x40df52
jmp 0x40d9ac
sub esi, 1
js 0x40da5c
inc ecx
add edx, 4
jmp 0x40da30
mov esi, dword [ebp + 0x14]
mov ecx, esi
mov byte [eax], 0
call fcn.0040e6a0
mov dword [esi + 0xc], 1
mov dword [esi], 0
jmp 0x40d752
push eax
mov ecx, edi
call fcn.0040c3ab
jmp 0x40d8af
mov edi, dword [esp + 0x34]
mov esi, dword [ecx]
mov eax, dword [edi]
mov dword [esp + 0x14], eax
test edx, edx
je 0x40dff5
movzx ecx, word [eax]
movzx eax, cx
mov dword [esp + 0x40], eax
movzx eax, word [esi]
mov dword [esp + 0x60], ecx
mov ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x60]
cmp cx, ax
jne 0x40dffc
mov eax, dword [esp + 0x14]
add esi, 2
add eax, 2
mov dword [esp + 0x14], eax
sub edx, 1
jne 0x40dfc2
xor eax, eax
jmp 0x40dc31
mov eax, dword [esp + 0x34]
cmp word [esp + 0x40], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x40dc31
inc edx
xor esi, esi
mov eax, dword [ecx + edx*4]
movzx eax, word [eax + 8]
cmp ax, 0x47
je 0x451a58
cmp ax, 0x48
je 0x40e0e6
cmp ax, 0x40
je 0x40e037
inc edx
jmp 0x40e013
test esi, esi
jne 0x40e034
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x40de4f
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov dword [ecx + 0x18], 0
add byte [eax], al
add byte [eax], al
jmp 0x40dc53
sub eax, 5
cmp eax, 0xa
ja case.0x40e06c.6
jmp dword [eax*4 + 0x40e198]
mov ecx, dword [esi]
test ecx, ecx
je case.0x40e06c.6
push ecx
call fcn.0041e30a
jmp case.0x40e06c.6
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40def5
lea ecx, [eax*4]
push ecx
push edx
push esi
call fcn.00421190
add esp, 0xc
push dword [esp + 0x24]
call fcn.00420184
add esp, 4
jmp 0x40def5
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40df43
lea ecx, [eax*4]
push ecx
push edx
push esi
call fcn.00421190
add esp, 0xc
push dword [esp + 0x28]
call fcn.00420184
add esp, 4
jmp 0x40df43
sub esi, 1
js 0x40e03b
jmp 0x40e034
sub eax, 5
cmp eax, 0xa
ja case.0x40e100.6
jmp dword [eax*4 + 0x40e1c4]
mov eax, dword [edi]
mov dword [esp + 0x40], eax
test eax, eax
je case.0x40e100.6
lea ecx, [eax + 8]
call fcn.0040bd98
push 0x18
push dword [esp + 0x44]
call fcn.0042013d
add esp, 8
jmp case.0x40e100.6
mov eax, dword [edi]
mov dword [esp + 0x40], eax
test eax, eax
je case.0x40e100.6
invalid
mov ecx, eax
call fcn.0041e322
push 4
push dword [esp + 0x44]
call fcn.0042013d
add esp, 8
jmp case.0x40e100.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x40e100.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x40e100.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x40e06c.6
push ecx
call fcn.0041f1fa
jmp case.0x40e06c.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x40e06c.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x40e06c.6
add byte [eax + ebx + 0x18db0045], dh
inc ebp
add dh, ch
sbb byte [ebp], al
sbb byte [ecx], bl
inc ebp
add byte [eax], bl
sbb dword [ebp], eax
add ebx, dword [ecx]
inc ebp
add byte [ebx - 0x74e7dbbc], cl
dec esp
and al, 0xc
mov eax, dword [esp + 0x18]
and al, 0x18
mov ecx, dword [esp + 0xc]
push eax
push 0x85
call fcn.00473ffa
add al, byte es:[eax]
or eax, 0xffffffff
jmp 0x40d9ec
mov ecx, 0x6f
jmp 0x451a8b
add cl, ch
in al, 0
add byte [eax], al
sub eax, 0x37
jne 0x40d4a7
mov edx, 0x448bfffb
mov edx, 0x40bf0ffc
or ch, bl
jecxz 0x451a09
mov eax, dword [edx + edi*4 - 4]
movsx eax, word [eax + 0xa]
jmp 0x45199d
jmp 0x40d4a7
loope 0x45197e
sti
push dword [ebx]
shr cl, 0x2a
mov ebx, 0x4bafffb
add byte [eax], al
add byte [ecx - 0x16d3dbac], cl
mov ebx, 0x448bfffb
and al, 0x20
mov eax, dword [esp + 0x20]
mov edx, dword [eax + esi + 4]
mov dword [esp + 0x60], edx
cmp word [edx + 8], 0x33
mov edx, dword [esp + 0x10]
je 0x451a07
mov eax, dword [eax + esi]
mov edx, dword [esp + 0x60]
mov eax, dword [eax]
cmp eax, dword [edx]
mov edx, dword [esp + 0x10]
je 0x451a77
mov eax, dword [esp + 0x20]
mov eax, dword [eax + esi]
mov eax, dword [eax]
cmp eax, 0x24
xor byte [ebx + 0x24f88300], cl
jne 0x451a18
mov byte [esp + 0xb], 1
jmp 0x451a25
cmp eax, 0x1e
jne 0x451a9b
mov dword [esp + 0x5c], 0x100
mov eax, dword [esp + 0x20]
inc edx
lea esi, [edx*4]
xor al, 0x95
add byte [eax], al
add byte [eax], al
mov dword [esp + 0x10], edx
mov eax, dword [eax + esi]
cmp word [eax + 8], 0
je 0x4519db
jmp 0x40dd7c
push eax
push esi
call fcn.0041e701
test eax, eax
js 0x452046
mov edx, dword [esp + 0x10]
inc edx
jmp 0x40e057
mov eax, dword [esp + 0x50]
mov ecx, 0x91
mov eax, dword [eax + 4]
mov eax, dword [eax + edx*4 + 4]
movsx eax, word [eax + 0xa]
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00473ffa
jmp 0x452046
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax + edx*4 + 4]
movsx eax, word [eax + 0xa]
push eax
push 0x91
call fcn.00473ffa
jmp 0x452046
add al, 0x8b
inc esp
nop
add al, 0xf
mov edi, 0x68500a40
xchg ecx, eax
add byte [eax], al
add al, ch
inc ecx
and eax, 0x88e90002
add eax, 0x48b0000
mov cs, word [ebx + 0xf0c244c]
mov edi, 0x6a500a40
outsd dx, dword [esi]
add byte [ebx + 0x4c8b8e04], cl
and al, 0xc
movsx eax, word [eax + 0xa]
push eax
push 0x6f
call fcn.00473ffa
jmp 0x452046
cmp al, 0x8b
inc esp
and al, 0x68
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x30]
mov al, byte [ebp + 8]
mov ecx, dword [esp + 0x38]
jmp 0x40d54e
and al, 0x44
mov dword [ecx + 4], eax
mov eax, dword [0x4d33b4]
mov byte [0x4d33b9], dl
mov dword [esp + 0x10], eax
mov ecx, 0x89004d33
inc esp
and al, 0x10
jmp 0x40d5de
push 0x20
push esi
call fcn.00420156
mov eax, dword [0x4d33b4]
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x40d5f0
mov eax, dword [edx + ecx]
mov eax, dword [eax]
cmp eax, 0x24
je 0x451c8c
cmp eax, 0x1e
jne 0x451c8d
mov edi, 0x100
inc esi
lea edx, [esi*4]
adc al, 0xb5
add byte [eax], al
add byte [eax], al
mov eax, dword [edx + ecx]
cmp word [eax + 8], 0
je 0x451c78
mov dword [esp + 0x2c], esi
jmp 0x40da33
mov cl, 0xff
xor al, ch
mov ecx, 0x840001dc
ror byte [edi], 0x84
push edi
add dword [eax], eax
add byte [ebx - 0x16dfdb8c], cl
xchg edx, eax
mov edi, 0x1b0fffb
jmp 0x40dac7
add byte [eax + eax*8 + 0x157840f], al
add byte [eax], al
mov esi, dword [esp + 0x20]
jmp 0x40dc76
mov ebp, 0x5257fffb
push esi
mov ecx, 0x4d33a0
call fcn.0040bfbe
mov esi, dword [esp + 0x20]
jmp 0x40dc76
invalid
aam 0xbd
sti
invalid
adc al, 0x8b
dec ecx
adc al, 0xe8
mov edx, 0x8bfffb97
je 0x451d4e
and cl, ch
inc esi
mov edi, 0x1b0fffb
jmp 0x40db4e
inc edi
add al, 0x8b
inc esi
or byte [ecx + 0x68b0847], cl
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
inc dword [eax]
jmp 0x40db8a
or byte [ebx - 0x74f876fa], cl
inc esi
or al, 0x89
inc edi
or al, 0xff
add cl, ch
xor dword [esi - 0x3fcd0005], edi
jmp 0x40db6a
push ecx
call fcn.00420194
add esp, 4
mov dword [edi], eax
xor ecx, ecx
mov word [eax + esi*2], cx
mov esi, dword [edi + 4]
jmp 0x40db72
jl 0x451dd5
xor al, 0xe9
lodsd eax, dword [esi]
ret 0xfffb
inc dword [ebp + 0x38840fff]
mov esi, 0x7c8bfffb
and al, 0x34
mov edi, dword [esp + 0x34]
jmp 0x40dc5c
mov esi, 0x4c8bfffb
and al, 0x2c
mov esi, dword [esp + 0x20]
lea eax, [ecx + 2]
mov dword [esp + 0x40], eax
lea eax, [esi + ecx]
mov ecx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x5c]
call fcn.00410359
test eax, eax
js 0x452046
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x78]
mov edx, dword [esp + 0x2c]
or edi, 0x200
push 1
push edi
mov eax, dword [eax + 4]
push ecx
mov eax, dword [eax + edx*4]
push dword [eax]
call fcn.0040be46
jmp 0x40dc76
and al, 0xc
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movsx eax, word [eax + 0xa]
push eax
push 0x79
call fcn.00473ffa
jmp 0x452046
mov ecx, dword [edi + 8]
lea eax, [esp + 0x90]
push eax
call fcn.00473c67
mov byte [edi + 0xd], 0
jmp 0x40d6d9
lea ecx, [esi + 0x164]
call fcn.004047a8
add dword [eax], eax
add al, ch
das
sub ebx, edi
invalid
cmp edi, dword [esi + 0x164]
jb 0x451e6e
mov edi, dword [esp + 0x40]
jmp 0x40d712
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
cmp ecx, eax
je 0x40d76b
push eax
call fcn.0040bef2
jmp 0x40d76b
mov edi, eax
mov edi, dword [edi + 0x14]
mov dword [esp + 0x18], edi
mov dword [esp + 0xa4], edi
sbb byte [ecx + 0xa424bc], cl
add byte [eax], al
mov edi, dword [esp + 0xc]
jmp 0x40d790
mov eax, 0x708bfffb
cmp cl, ch
stosd dword es:[edi], eax
mov eax, 0xc984fffb
je 0x451ef6
mov eax, dword [eax + 0x38]
add eax, 0x20
lea ecx, [esp + 0xb0]
push eax
call fcn.0040b4e1
mov eax, dword [esp + 0xbc]
mov edx, dword [edi]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x18], eax
jmp 0x40d7a4
and al, 0xb8
add byte [eax], al
add byte [ecx - 0x74e3dbbc], cl
test byte [esp], ah
add byte [eax], al
add byte [ecx - 0x16e7dbbc], cl
jbe 0x451ee4
sti
dec dword [ebx + 0x798b084e]
cmp byte [ebp + 0x510674c9], al
leave
je 0x451f3e
push ecx
call fcn.004030b7
sti
dec dword [ecx + 0x7c8b087e]
and al, 0xc
mov dword [esi + 8], edi
mov edi, dword [esp + 0xc]
or al, 0xc6
inc esi
or eax, 0xb867e900
mov byte [esi + 0xd], 0
jmp 0x40d7b5
sti
push dword [eax - 0x476016ff]
sti
dec dword [ebx - 0x4e16c7b7]
mov eax, 0x498bfffb
cmp cl, ch
mov ebp, 0x8bfffbb8
jg 0x451fa0
jmp 0x40d83a
dec edi
or byte [ebx + 0x3b1c2444], cl
enter 0xffffffffffff840f, 0xffffffffffffffe1
mov eax, 0xe850fffb
lahf
sti
invalid
je 0x40d868
push eax
call fcn.0040bef2
jmp 0x40d868
push ecx
mov edi, dword [ecx + 8]
mov dword [esp + 0x1c], edi
and al, 0x1c
call fcn.004656c7
mov dword [0x4d33b4], edi
add dh, al
add eax, 0x4d33b9
add cl, ch
invalid
invalid
sti
invalid
add dh, al
add eax, 0x4d33b9
add cl, ch
sar dword [eax + 0x5c6fffb], 1
mov ecx, 0x1004d33
jmp 0x40d973
test eax, eax
je 0x40d92a
push eax
call dword [esp + 0x8c]
push 0x10
push dword [edi]
jmp 0x40e13c
sar ebx, 0xff
sar ebx, 0xff
mov eax, dword [edi]
push dword [eax + 4]
call fcn.0042019d
add esp, 4
push 8
push dword [edi]
jmp 0x40e13c
inc eax
sar ebx, 0xff
inc eax
sar ebx, 0xff
mov ecx, dword [edi]
test ecx, ecx
je 0x40d92a
push ecx
call fcn.00460662
jmp 0x40d92a
inc esp
and al, 0x40
test eax, eax
je 0x40d92a
mov ecx, eax
call fcn.0040bdb1
push 0x14
jmp 0x40e138
test al, al
jne 0x452043
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
push eax
push 0x70
call fcn.00473ffa
jmp 0x452046
add dword [esi], 0xfffffffe
mov dword [esp + 0x18], 0xffffffff
jmp 0x40d9aa
push eax
call dword [esp + 0x8c]
push 0x10
push dword [esi]
call fcn.00420156
add esp, 8
jmp 0x40dd19
call fcn.0042019d
add esp, 4
push 8
push dword [esi]
call fcn.00420156
add esp, 8
jmp 0x40dd19
invalid
invalid
sti
invalid
test dword [ebx + edi*8 - 0x7af17401], edi
leave
je 0x40dd19
push ecx
call fcn.00460662
jmp 0x40dd19