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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.00413541
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x42e529
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411c6b
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.004131e0
add esp, 0xc
push 4
call fcn.00413689
add esp, 4
test eax, eax
je 0x42e533
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x42e609
cmp dword [eax], 1
jg 0x42e53a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [0x487660]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x42e5a1
mov esi, dword [eax + 0x134]
test esi, esi
je 0x42e609
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40b6b5
test edx, edx
je 0x40a7f9
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x40a7e0
mov si, word [eax]
cmp si, word [ecx]
jne 0x40b6b1
add eax, 2
add ecx, 2
dec edx
jne 0x40a7e0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x40a81b
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041355c
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.00411c76
add esp, 4
mov eax, esi
test eax, eax
je 0x42e612
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x498ccc
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x49d298
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x42e595
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x40a8cc
inc eax
jmp 0x40a8b8
sub ecx, 0x47
je 0x42e66e
dec ecx
jne 0x42e645
test esi, esi
jne 0x42e667
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4ba1e8]
jg 0x42e674
cmp eax, ecx
jle 0x42e674
shl eax, 4
add eax, dword [0x4ba21c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x40aae2
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x40aae2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x42e67d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x40a96e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x40b6c9
push 1
call fcn.00413689
add esp, 4
test eax, eax
je 0x42e6b5
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x42e6bc
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x42e7c6
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42e7d9
cmp eax, 0xa
je 0x42e7fe
cmp eax, 5
je 0x42e815
cmp eax, 0xb
je 0x42e823
cmp eax, 0xc
je 0x42e845
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40b726
mov edi, dword [esp + 0x34]
push 0x10
call fcn.00413689
add esp, 4
test eax, eax
je 0x42ea2b
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42e85c
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040b7c0
test eax, eax
jne 0x42fc28
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x42ea32
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x40aae2
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x42ea81
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x42ea81
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x40aacf
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x40a930
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x42fc18
cmp eax, dword [esp + 0x5c]
jg 0x42fc18
cmp edx, dword [esp + 0x14]
jne 0x42fc18
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x42ea93
cmp byte [0x4b9025], al
jne 0x42ea9c
push 0xc
call fcn.00413689
add esp, 4
cmp eax, esi
je 0x42eb3f
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x42eabd
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x42eac5
mov dword [edi], esi
mov ecx, dword [0x4b9020]
mov dword [edi + 8], ecx
mov dword [0x4b9020], edi
mov eax, dword [esp + 0x48]
inc dword [0x4b901c]
cmp eax, esi
jne 0x42eb46
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x40b019
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xbc], 0x4966cc
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xda], ax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x42eb99
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x42ec00
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x42ebd0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4b901c], ebx
je 0x42ecca
mov dword [esp + 0x18], edx
cmp byte [0x4b9025], bl
jne 0x42ecdd
mov ebx, dword [0x4b9020]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x40ad3c
test byte [0x4ba6d4], 1
mov byte [esp + 0x43], al
and al, 0x43
je 0x42eceb
mov dword [0x4ba6d0], eax
mov dword [0x4ba6cc], eax
mov eax, 0x4ba6b4
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x42ed10
test edx, edx
je 0x42ed18
cmp eax, edx
jb 0x42ed38
test eax, eax
je 0x42ed29
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x40acda
add eax, 2
add ecx, 2
dec edx
jne 0x40acc4
jmp 0x42ed25
mov ebx, dword [esp + 0x14]
jb 0x42ed30
mov eax, 1
test eax, eax
js 0x42ed46
jle 0x42ede1
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x42ed98
cmp byte [esp + 0x43], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4ba6d0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4ba6cc]
mov dword [edx + 0x1c], eax
jne 0x42edeb
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.00413689
add esp, 4
test eax, eax
je 0x42ee0e
mov esi, eax
xor ecx, ecx
mov eax, 8
mov dword [esi + 8], eax
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], 0
neg ecx
or ecx, eax
push ecx
call fcn.00411c6b
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00413689
add esp, 4
test eax, eax
je 0x42ee07
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x40adde
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x42ee15
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x42ee34
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
lea eax, [edx + edx + 2]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.004131e0
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00413689
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40ae4b
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x58], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja 0x40ae47
jmp dword [eax*4 + 0x40ab84]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x40b779
test byte [0x4ba6d4], 1
je 0x42efe8
mov eax, 0x4ba6b4
mov dword [0x4ba6d0], edi
mov dword [0x4ba6cc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
lea ebx, [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x42f00b
cmp edx, edi
je 0x42f013
cmp eax, edx
jb 0x42f033
cmp eax, edi
jbe 0x42f022
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40aed6
add eax, 2
add ecx, 2
dec edx
jne 0x40aec0
jmp 0x42f020
jb 0x42f029
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42f041
jle 0x40aefe
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42f0a0
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4ba6d0]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4ba6cc]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42f0ee
cmp edx, edi
je 0x42f0f6
cmp eax, edx
jb 0x42f116
cmp eax, edi
jbe 0x42f105
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x40af66
add eax, 2
add ecx, 2
dec edx
jne 0x40af50
jmp 0x42f103
jb 0x42f10c
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42f124
jle 0x42f135
mov ecx, dword [0x4ba6cc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x42f13c
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x42f170
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x4966cc
ja 0x42f194
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.00411c76
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x40aba0
mov ebx, dword [esp + 0xcc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
xor eax, eax
lea ecx, [eax + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x90], al
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0xb0], al
mov eax, dword [esi]
mov dword [esi + 0x148], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
jne 0x42f1bd
push 0x40
call fcn.00413689
add esp, 4
test eax, eax
je 0x42f20f
xor ecx, ecx
mov edx, 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov byte [eax + 0x10], cl
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], cl
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], ecx
mov byte [eax + 0x30], cl
mov ecx, dword [edi + 4]
mov dword [eax + 0x38], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov edx, dword [esi + 0xf4]
lea eax, [ebx + 1]
mov ebx, dword [esi + 0x16c]
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.0040a220
cmp ebx, dword [edi]
jb 0x42f216
mov eax, dword [esp + 0x48]
mov edi, esi
mov ecx, dword [edi]
mov dword [edi + 0xf4], eax
add byte [ebx + 0x7c800451], cl
cmp cl, byte [0x3a448d00]
add al, 0x8b
inc eax
add al, 0xf
test dword [edx], edx
inc ecx
add al, byte [eax]
cmp byte [eax + 0x10], 0
je 0x42f449
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x42f22c
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je 0x40b1cb
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42f237
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42f249
cmp eax, 0xa
je 0x42f26a
cmp eax, 5
je 0x42f27f
cmp eax, 0xb
je 0x42f28b
cmp eax, 0xc
je 0x42f2a9
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42f2be
push 0x10
call fcn.00413689
add esp, 4
test eax, eax
je 0x42f43a
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x42f441
cmp byte [eax + 0x18], 0
jne 0x42f469
cmp byte [esi + 9], 0
jne 0x42f47f
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x42f48a
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
cmp byte [ecx + ebx + 0xd], 0
lea edi, [ecx + ebx + 4]
jne 0x42f4a6
cmp byte [edi + 8], 0
jne 0x42f4c6
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x40b2f1
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x42f4cf
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x42f4e1
cmp eax, 0xa
je 0x42f504
cmp eax, 5
je 0x42f51a
cmp eax, 0xb
je 0x42f527
cmp eax, 0xc
je 0x42f547
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x40b2a8
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x42f55d
push ebx
call fcn.00411c76
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42f579
cmp eax, 0xa
je 0x42f59a
cmp eax, 5
je 0x42f5af
cmp eax, 0xb
je 0x42f5bb
cmp eax, 0xc
je 0x42f5d9
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00411c76
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov byte [edi + 9], 0
dec dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 8]
add eax, ebx
cmp byte [eax + 0xd], 0
jne 0x42f5ee
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42f5f6
mov byte [eax + 0x18], 0
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
cmp byte [eax + 0xd], 0
mov dword [esp + 0x48], eax
jne 0x42f5fe
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je 0x40b3b1
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42f609
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42f61b
cmp eax, 0xa
je 0x42f63c
cmp eax, 5
je 0x42f651
cmp eax, 0xb
je 0x42f65d
cmp eax, 0xc
je 0x42f67b
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x42f690
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xd], 0
jne 0x42f873
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4b9025], 0
jne 0x42f87e
mov ecx, dword [0x4b9020]
cmp byte [0x4b9024], 0
jne 0x42f8a0
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x40b4c5
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x40b40e
push eax
call fcn.0040c400
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42f8b0
cmp byte [esi + 0x10], 0
jne 0x40b494
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40b494
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40b44e
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42f8bd
push edi
call fcn.00411c76
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42f8d9
cmp eax, 0xa
je 0x42f8fa
cmp eax, 5
je 0x42f90f
cmp eax, 0xb
je 0x42f91b
cmp eax, 0xc
je 0x42f939
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.00411c76
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40b4b8
mov edx, dword [esi]
push edx
call fcn.0041355c
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
push esi
call fcn.00411c76
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.00411c76
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4b9020], edx
mov byte [0x4b9025], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4b901c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x42f94e
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x42f964
cmp eax, 0xa
je 0x42f988
cmp eax, 5
je 0x42f9a2
cmp eax, 0xb
je 0x42f9b3
cmp eax, 0xc
je 0x42f9d4
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
cmp eax, ecx
jne 0x42f9ee
cmp esi, 8
je 0x42fa0b
cmp esi, 0xa
je 0x42fa3b
cmp esi, 5
je 0x42fa61
cmp esi, 0xb
je 0x42fa79
cmp esi, 0xc
je 0x42faa1
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x42fac7
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42fae1
cmp eax, 0xa
je 0x42fb0d
cmp eax, 5
je 0x42fb2b
cmp eax, 0xb
je 0x42fb40
cmp eax, 0xc
je 0x42fb69
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x40b5f4
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.00411c76
inc esi
add esp, 4
cmp esi, edi
jb 0x40b5e3
mov edx, dword [esp + 0x64]
push edx
call fcn.00411c76
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x40b690
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x40b689
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40b643
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x42fb87
push edi
call fcn.00411c76
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42fba3
cmp eax, 0xa
je 0x42fbc4
cmp eax, 5
je 0x42fbd9
cmp eax, 0xb
je 0x42fbe5
cmp eax, 0xc
je 0x42fc03
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00411c76
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x40b610
mov edx, dword [esp + 0x34]
push edx
call fcn.00411c76
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x40a7c0
jmp 0x42e609
add eax, eax
cmp eax, 4
jae 0x40b6d5
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00413689
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.004131e0
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.00411c76
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x40a97e
add eax, eax
cmp eax, 4
jae 0x40b732
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00413689
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.004131e0
add esp, 0xc
push ebx
call fcn.00411c76
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x40aa03
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x40af94
mov eax, 8
jmp 0x40a720
xor eax, eax
jmp 0x40a76c
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.00402100
mov edx, dword [esp + 0x34]
inc edx
push edx
call fcn.0044b654
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x38], esi
neg ecx
or ecx, eax
push ecx
call fcn.00411c6b
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.004131e0
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x40a789
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x42fc23
mov eax, dword [eax + 0x140]
dec eax
js 0x42e609
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
call fcn.0040cc90
test eax, eax
jns 0x42e5f0
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x42e5ff
jle 0x42e626
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x42e5ba
lea ecx, [esp + 0x30]
call fcn.00402fb0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.00483f1f
jmp 0x40b69f
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x42e609
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00402fb0
jmp 0x40a81b
sub ecx, 0x37
jne 0x40a8c9
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x42fc23
dec esi
inc eax
jmp 0x40a8b8
inc esi
jmp 0x40a8c9
mov dword [esp + 0x50], ecx
jmp 0x40a913
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x42e691
mov bl, 1
jmp 0x42e69f
cmp ecx, 0x1e
jne 0x42ea3c
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x42e67d
jmp 0x40a95c
xor eax, eax
jmp 0x40a992
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x42ea48
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0040d290
test al, al
je 0x42ea64
test dword [esp + 0x18], 0x100
je 0x42e729
test edi, 0x100
jne 0x42e729
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x42fc23
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x42e79a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x42e79a
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0040d4b0
test eax, eax
je 0x42e79a
lea esi, [esp + 0x20]
call fcn.00409f70
lea ecx, [esp + 0x60]
call fcn.00446c89
lea ecx, [esp + 0x30]
call fcn.00411a60
mov eax, edi
jmp 0x40b69f
lea esi, [esp + 0x20]
call fcn.00409f70
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0040ca10
mov ebx, dword [esp + 0x14]
jmp 0x40aa84
push eax
call fcn.0044799d
mov dword [esp + 0x2c], 0
jmp 0x40a9b2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a9e3
push eax
call dword [0x48744c]
mov edx, dword [esp + 0x20]
push edx
call fcn.00411c76
add esp, 4
jmp 0x40a9e3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a9e3
push eax
call fcn.00449180
jmp 0x40a9e3
lea eax, [esp + 0x20]
call fcn.0040f350
jmp 0x40a9e3
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.00411c76
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.00411c76
add esp, 4
jmp 0x40a9e3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a9e3
push eax
call fcn.004503d6
jmp 0x40a9e3
dec eax
cmp eax, 0xb
ja 0x42e90f
jmp dword [eax*4 + 0x42f04d]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x40aa38
xor eax, eax
jmp 0x40aa3a
add dword [esp + 0x10], 2
jmp 0x40aa84
push 0xffffffffffffffff
push 0x91
jmp 0x42fc1f
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x42fc23
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x42fc23
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x42fc1f
mov dword [esp + 0x4c], esi
jmp 0x40ab2b
mov edx, dword [0x4b9020]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x4b9020]
mov dword [ecx + 4], eax
mov byte [0x4b9025], 0
jmp 0x40ab7b
mov dword [edi + 4], esi
jmp 0x40ab5e
push 0x20
mov dword [esp + 0x1c], eax
call fcn.00413689
add esp, 4
cmp eax, esi
je 0x42eae6
push eax
call fcn.00450419
jmp 0x42eae8
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040f180
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x14], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ecx + 0x18], eax
mov edx, dword [edi]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi]
add ecx, 0x18
push eax
push ecx
mov ecx, edi
call fcn.00458bc1
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00458bc1
xor esi, esi
jmp 0x40ab6c
xor edi, edi
jmp 0x40ab6c
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x42eb5d
push eax
lea ecx, [esp + 0x4c]
call fcn.0040c400
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x42eb72
push eax
lea ecx, [esp + 0x4c]
call fcn.0040c400
cmp byte [edi + 0x10], 0
jne 0x42eb8e
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x42eb8e
push 1
call fcn.0040f2a0
push edi
call fcn.0044799d
jmp 0x40ab8d
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x42ebbb
cmp edi, 0x1e
jne 0x42ebbf
mov dword [esp + 0x14], 0x100
mov eax, dword [esp + 0x14]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x42eb99
mov dword [esp + 0x10], esi
jmp 0x40abfa
mov edi, dword [esp + 0x34]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.00436fd2
push eax
mov eax, dword [ecx]
push eax
call fcn.00467a8a
test al, al
je 0x42f1d7
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40afb5
lea ebx, [esp + 0xbc]
call fcn.0040e510
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x42ec37
cmp cx, 0x49
jne 0x42ec52
lea edi, [esp + 0xbc]
call fcn.00403780
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
lea edi, [esp + 0xbc]
call fcn.00403780
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.00403710
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00403780
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.0040b7c0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x14]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x48], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.004026e0
jmp 0x40af96
push esi
mov eax, edi
push edx
mov edi, 0x4b900c
call fcn.00404e40
jmp 0x40af96
mov ecx, dword [0x4b9020]
mov ebx, dword [ecx + 8]
jmp 0x40ac60
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.00450419
push 0x429ffd
call fcn.0041382c
add esp, 4
xor eax, eax
jmp 0x40ac7f
test edx, edx
jne 0x42ed46
test eax, eax
jne 0x40acf7
jmp 0x40acae
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x40ace9
or eax, 0xffffffff
jmp 0x40ace9
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0040e170
jmp 0x40ace9
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40ad04
push eax
push edi
call fcn.00448127
add esp, 8
test al, al
je 0x42ed83
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx]
mov dword [eax + 0x1c], ecx
mov dword [ebx], eax
cmp dword [eax + 0x18], 0
je 0x40ad04
mov edx, dword [ebx]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x40ac92
push edi
push eax
call fcn.00448127
add esp, 8
test al, al
je 0x42edc8
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax + 0x18], edx
mov dword [ebx], eax
cmp dword [eax + 0x1c], 0
je 0x40ad04
mov eax, dword [ebx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [ebx], edx
jmp 0x40ac96
mov byte [esp + 0x43], 1
jmp 0x40ad04
mov ebx, dword [ebx]
test ebx, ebx
je 0x40ad3c
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00409eb0
jmp 0x40af96
xor eax, eax
jmp 0x40ada1
xor ebx, ebx
jmp 0x40ada6
dec dword [eax]
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
inc dword [edi]
jmp 0x40adde
push eax
call fcn.0044b654
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x42ee50
push eax
call fcn.0041355c
add esp, 4
mov eax, dword [ebx + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00411c6b
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40adc8
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.00450419
push 0x429ffd
call fcn.0041382c
add esp, 4
jmp 0x40ae71
cmp edx, edi
jne 0x42f041
cmp eax, edi
jne 0x40aeed
jmp 0x40aea6
xor edi, edi
xor eax, eax
jmp 0x40aee3
or eax, 0xffffffff
xor edi, edi
jmp 0x40aee3
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040e170
jmp 0x40aee3
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x40aefe
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.00448127
add esp, 8
test al, al
je 0x42f08a
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x40aefe
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x74], esi
mov esi, dword [ecx]
jmp 0x40ae90
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.00448127
add esp, 8
test al, al
je 0x42f0d8
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x40aefe
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx]
jmp 0x40ae90
cmp edx, edi
jne 0x42f124
cmp eax, edi
jne 0x40af81
jmp 0x40af39
xor edi, edi
xor eax, eax
jmp 0x40af73
or eax, 0xffffffff
xor edi, edi
jmp 0x40af73
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040e170
jmp 0x40af73
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40af90
mov ebx, esi
jmp 0x40af90
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42f166
cmp ax, 0x49
je 0x42f166
add dword [esp + 0x10], 4
jmp 0x40afb5
add dword [esp + 0x10], 5
jmp 0x40afb5
cmp ax, 0x3f
jg 0x40afcb
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x40afcb
push eax
call fcn.0044799d
jmp 0x40afcb
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x42f1ae
push eax
call fcn.0045194e
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x42f196
jmp 0x40afe4
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.0047977e
mov byte [edi + 9], 0
jmp 0x40b0c4
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
call fcn.004669f6
lea ecx, [esp + 0xd0]
push ecx
call fcn.0045047b
lea ecx, [esp + 0xbc]
call fcn.0040fa70
jmp 0x42fc28
xor eax, eax
jmp 0x40b0bb
call fcn.0040d760
cmp ebx, dword [edi]
jb 0x42f216
jmp 0x40b0ef
mov eax, dword [eax + 0x38]
jmp 0x40b112
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x40b139
push eax
call fcn.0044799d
mov dword [ebx + 0xc], 0
jmp 0x40b14f
mov ecx, dword [ebx]
test ecx, ecx
je 0x40b15b
push ecx
call dword [0x48744c]
mov edx, dword [ebx]
push edx
call fcn.00411c76
add esp, 4
jmp 0x40b17f
mov eax, dword [ebx]
test eax, eax
je 0x40b17f
push eax
call fcn.00449180
jmp 0x40b17f
mov eax, ebx
call fcn.0040f350
jmp 0x40b17f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.00411c76
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.00411c76
add esp, 4
jmp 0x40b17f
mov eax, dword [ebx]
test eax, eax
je 0x40b17f
push eax
call fcn.004503d6
jmp 0x40b17f
dec eax
cmp eax, 0xb
ja 0x40b1cb
jmp dword [eax*4 + 0x42f07d]
xor eax, eax
jmp 0x40b1c8
mov eax, dword [eax + 0x38]
jmp 0x40b1e3
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00409f70
mov dword [esi + 8], 1
add byte [eax], al
mov dword [esi], 0
jmp 0x40b1cb
mov eax, esi
call fcn.00404cf0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x40b1ed
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
inc edx
cmp cl, ch
jo 0x42f445
std
invalid
mov eax, esi
call fcn.00404cf0
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.00409eb0
jmp 0x40b204
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x42f4ba
push eax
call fcn.0045202d
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x40b21b
mov byte [edi + 9], 1
jmp 0x40b2fc
push eax
call fcn.0044799d
mov dword [esi + 0x2c], 0
jmp 0x40b242
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x40b24e
push ecx
call dword [0x48744c]
mov eax, dword [esi + 0x20]
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b272
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40b272
push eax
call fcn.00449180
jmp 0x40b272
lea eax, [esi + 0x20]
call fcn.0040f350
jmp 0x40b272
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00411c76
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b272
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40b272
push eax
call fcn.004503d6
jmp 0x40b272
mov edx, dword [ebx]
push edx
call fcn.0041355c
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b298
mov ecx, dword [esi]
test ecx, ecx
je 0x40b2b4
push ecx
call dword [0x48744c]
mov ecx, dword [esi]
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b2d8
mov eax, dword [esi]
test eax, eax
je 0x40b2d8
push eax
call fcn.00449180
jmp 0x40b2d8
mov eax, esi
call fcn.0040f350
jmp 0x40b2d8
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00411c76
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b2d8
mov eax, dword [esi]
test eax, eax
je 0x40b2d8
push eax
call fcn.004503d6
jmp 0x40b2d8
mov ecx, dword [ecx + 0x38]
jmp 0x40b313
mov eax, dword [eax + 0x38]
jmp 0x40b32a
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x40b346
push eax
call fcn.0044799d
mov dword [ebx + 0xc], 0
jmp 0x40b35f
mov ecx, dword [ebx]
test ecx, ecx
je 0x40b36b
push ecx
call dword [0x48744c]
mov ecx, dword [ebx]
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b38f
mov eax, dword [ebx]
test eax, eax
je 0x40b38f
push eax
call fcn.00449180
jmp 0x40b38f
mov eax, ebx
call fcn.0040f350
jmp 0x40b38f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.00411c76
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b38f
mov eax, dword [ebx]
test eax, eax
je 0x40b38f
push eax
call fcn.004503d6
jmp 0x40b38f
dec eax
cmp eax, 0xb
ja 0x40b3b1
jmp dword [eax*4 + 0x42f0ad]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x40b3c6
mov eax, dword [0x4b9020]
mov esi, dword [eax + 8]
push eax
call fcn.00475cf8
mov ecx, esi
mov dword [0x4b9020], ecx
mov byte [0x4b9025], 0
jmp 0x40b3dd
mov ebx, dword [esp + 0x64]
mov byte [0x4b9025], 1
jmp 0x40b4e7
push eax
mov ecx, ebx
call fcn.0040c400
jmp 0x40b419
mov ecx, dword [edi]
push ecx
call fcn.0041355c
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.00411c76
add esp, 4
jmp 0x40b43e
mov ecx, dword [ebx]
test ecx, ecx
je 0x40b45a
push ecx
call dword [0x48744c]
mov eax, dword [ebx]
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b47e
mov eax, dword [ebx]
test eax, eax
je 0x40b47e
push eax
call fcn.00449180
jmp 0x40b47e
mov eax, ebx
call fcn.0040f350
jmp 0x40b47e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.00411c76
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b47e
mov eax, dword [ebx]
test eax, eax
je 0x40b47e
push eax
call fcn.004503d6
jmp 0x40b47e
push eax
call fcn.0044799d
mov dword [esp + 0xac], 0
jmp 0x40b50c
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x40b540
push esi
call dword [0x48744c]
push esi
call fcn.00411c76
add esp, 4
jmp 0x40b540
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40b540
push eax
call fcn.00449180
jmp 0x40b540
lea eax, [esp + 0xa0]
call fcn.0040f350
jmp 0x40b540
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.00411c76
add esp, 4
push esi
call fcn.00411c76
add esp, 4
jmp 0x40b540
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40b540
push eax
call fcn.004503d6
jmp 0x40b540
push eax
call fcn.0044799d
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40b56b
cmp dword [esp + 0x80], ecx
je 0x40b598
mov esi, dword [esp + 0x80]
push esi
call dword [0x48744c]
push esi
call fcn.00411c76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40b598
cmp dword [esp + 0x80], ecx
je 0x40b598
mov eax, dword [esp + 0x80]
push eax
call fcn.00449180
mov edx, 1
xor ecx, ecx
jmp 0x40b598
lea eax, [esp + 0x80]
call fcn.0040f350
mov edx, 1
xor ecx, ecx
jmp 0x40b598
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.00411c76
add esp, 4
push esi
call fcn.00411c76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40b598
cmp dword [esp + 0x80], ecx
je 0x40b598
mov edx, dword [esp + 0x80]
push edx
call fcn.004503d6
mov edx, 1
xor ecx, ecx
jmp 0x40b598
push eax
call fcn.0044799d
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40b5a4
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40b5d5
push eax
call dword [0x48744c]
mov eax, dword [esp + 0x20]
push eax
call fcn.00411c76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40b5d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40b5d5
push eax
call fcn.00449180
mov edx, 1
xor ecx, ecx
jmp 0x40b5d5
lea eax, [esp + 0x20]
call fcn.0040f350
mov edx, 1
xor ecx, ecx
jmp 0x40b5d5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00411c76
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40b5d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40b5d5
push eax
call fcn.004503d6
mov edx, 1
xor ecx, ecx
jmp 0x40b5d5
mov edx, dword [edi]
push edx
call fcn.0041355c
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.00411c76
add esp, 4
jmp 0x40b633
mov ecx, dword [esi]
test ecx, ecx
je 0x40b64f
push ecx
call dword [0x48744c]
mov ecx, dword [esi]
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b673
mov eax, dword [esi]
test eax, eax
je 0x40b673
push eax
call fcn.00449180
jmp 0x40b673
mov eax, esi
call fcn.0040f350
jmp 0x40b673
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00411c76
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00411c76
add esp, 4
jmp 0x40b673
mov eax, dword [esi]
test eax, eax
je 0x40b673
push eax
call fcn.004503d6
jmp 0x40b673
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call fcn.004669f6
lea esi, [esp + 0x20]
call fcn.00409f70
lea ecx, [esp + 0x60]
call fcn.00446c89
lea ecx, [esp + 0x30]
call fcn.00411a60
mov eax, 1
jmp 0x40b69f