Function at 0x42e230
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5acf70
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x6281c0]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
push edi
mov eax, dword [0x6281c0]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x88]
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
call fcn.004620ee
mov dword [esp + 0x1c0], 0
mov eax, dword [esi]
mov dword [esp + 0x4c], 0
cmp dword [eax - 0xc], 0
jl 0x42e3bc
push 0x5f85fc
push eax
call fcn.005813c9
add esp, 8
test eax, eax
je 0x42e3bc
mov ecx, dword [esi]
sub eax, ecx
sar eax, 1
jne 0x42e3bc
cmp dword [ecx - 0xc], 0
jl 0x42e3bc
push 0x5f8500
push ecx
call fcn.005813c9
add esp, 8
test eax, eax
je 0x42e3bc
mov ecx, dword [esi]
sub eax, ecx
sar eax, 1
test eax, eax
jle 0x42e3bc
cmp dword [ecx - 0xc], 0
jl 0x42e3bc
push 0x5f8600
push ecx
call fcn.005813c9
add esp, 8
test eax, eax
je 0x42e3bc
sub eax, dword [esi]
sar eax, 1
test eax, eax
jle 0x42e3bc
push 0x5f79a4
push 0x5f85fc
mov ecx, esi
call fcn.0040da50
push 0x5f79a4
push 0x5f8600
mov ecx, esi
call fcn.0040da50
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5f8500
lea ebx, [esp + 0x90]
call fcn.00407380
mov byte [esp + 0x1c4], 1
mov eax, dword [esi]
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.00407760
add esp, 4
add eax, 0x10
mov dword [edi], eax
mov ecx, ebx
mov byte [esp + 0x1c8], 0
call fcn.004125b0
add esp, 8
cmp eax, 4
jne 0x42e3bc
cmp dword [esp + 0x90], 1
mov dword [esp + 0x4c], 1
jg 0x42e3aa
call fcn.004565e8
mov eax, dword [esp + 0x8c]
mov ecx, esi
add eax, 4
push eax
call fcn.0040e750
mov eax, dword [esi]
xor ebx, ebx
mov ecx, str.tittle
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42e3eb
test dx, dx
je 0x42e3e7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42e3eb
add eax, 4
add ecx, 4
test dx, dx
jne 0x42e3c5
xor eax, eax
jmp 0x42e3f0
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 1
sete al
test al, al
cmovne ebx, ecx
mov dword [esp + 0x1c], ebx
call fcn.00461fe6
mov edi, dword [eax + 4]
mov dword [esp + 0x28], edi
mov eax, dword [edi + 0x100]
cmp eax, 2
je 0x42e434
cmp eax, 3
je 0x42e434
cmp eax, 4
je 0x42e434
cmp dword [esp + 0x4c], 1
je 0x42e434
cmp ebx, 1
jne 0x431693
push 0x5f79a4
push 0x5f98f4
mov ecx, esi
call fcn.0040da50
push 0x5f79a4
push 0x5f902c
mov ecx, esi
call fcn.0040da50
push 0x5f79a4
push 0x5f9904
mov ecx, esi
call fcn.0040da50
lea ecx, [esp + 0x38]
call fcn.004620ee
push 0x5f79a4
lea ecx, [esp + 0x160]
mov byte [esp + 0x1c4], 2
call fcn.00407380
push fcn.00407820
push fcn.00407700
push 0x13
push 4
lea eax, [esp + 0x170]
mov byte [esp + 0x1d0], 3
push eax
call fcn.00580177
mov byte [esp + 0x1c0], 4
cmp ebx, 1
je 0x42e644
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5f9908
call fcn.00407380
mov byte [esp + 0x1c4], 5
mov eax, dword [esi]
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x40]
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x1c8], 4
call fcn.004125b0
add esp, 8
cmp eax, 8
jne 0x42e7ab
cmp dword [esp + 0x40], 0
jg 0x42e515
call fcn.004565e8
push dword [esp + 0x3c]
lea ecx, [esp + 0x160]
call fcn.0040e750
cmp dword [esp + 0x40], 1
jg 0x42e531
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x160]
add eax, 4
push eax
call fcn.0040e750
cmp dword [esp + 0x40], 2
jg 0x42e551
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x164]
add eax, 8
push eax
call fcn.0040e750
cmp dword [esp + 0x40], 3
jg 0x42e571
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x168]
add eax, 0xc
push eax
call fcn.0040e750
cmp dword [esp + 0x40], 4
jg 0x42e591
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x16c]
add eax, 0x10
push eax
call fcn.0040e750
cmp dword [esp + 0x40], 5
jg 0x42e5b1
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x170]
add eax, 0x14
push eax
call fcn.0040e750
cmp dword [esp + 0x40], 6
jg 0x42e5d1
call fcn.004565e8
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x174]
add eax, 0x18
push eax
call fcn.0040e750
mov eax, dword [esp + 0x174]
cmp dword [eax - 0xc], 6
jle 0x42e640
push 6
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x17c]
call fcn.00414550
push eax
lea ecx, [esp + 0x178]
mov byte [esp + 0x1c4], 6
call fcn.0040e750
mov byte [esp + 0x1c0], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e640
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x28]
push 0x5f9904
lea ecx, [esp + 0x1c]
call fcn.00407380
push 0x5f9904
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1c4], 7
call fcn.00407380
mov byte [esp + 0x1c0], 8
mov eax, dword [edi + 0x100]
cmp eax, 3
je 0x42ec5c
cmp dword [esp + 0x4c], 1
je 0x42ec5c
cmp ebx, 1
je 0x42ec5c
cmp eax, 2
lea eax, [esp + 0x164]
push 0x5f79a4
push eax
jne 0x42ebdd
call fcn.004145d0
add esp, 8
test al, al
je 0x42e7db
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x5a
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x170]
mov byte [esp + 0x1c0], 0x5b
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x5c
push ecx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x16c]
mov byte [esp + 0x1c0], 0x5d
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x5e
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x5f
call fcn.0040e750
lea ecx, [esp + 0x50]
call fcn.00407820
lea ecx, [esp + 0x58]
call fcn.00407820
lea ecx, [esp + 0x5c]
call fcn.00407820
lea ecx, [esp + 0x4c]
call fcn.00407820
lea ecx, [esp + 0x54]
call fcn.00407820
lea ecx, [esp + 0x28]
call fcn.00407820
jmp 0x431618
mov edi, dword [esp + 0x28]
push esi
cmp dword [edi + 0x188], 0
je 0x42e7ca
lea ecx, [esp + 0x16c]
call fcn.0040e750
jmp 0x42e644
lea ecx, [esp + 0x168]
call fcn.0040e750
jmp 0x42e644
mov eax, dword [esp + 0x164]
cmp dword [eax - 0xc], 0xa
jne 0x42e84f
push 3
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x16c]
call fcn.00414550
push 0x5fc990
mov byte [esp + 0x1c4], 0x60
mov ebx, 1
push eax
mov dword [esp + 0x60], ebx
call fcn.004145d0
add esp, 8
test al, al
jne 0x42e848
push 3
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x16c]
call fcn.00414550
push 0x5fc998
push eax
mov ebx, 3
call fcn.004145d0
add esp, 8
test al, al
je 0x42e853
mov byte [esp + 0x33], 1
jmp 0x42e858
mov ebx, dword [esp + 0x5c]
mov byte [esp + 0x33], 0
test bl, 2
je 0x42e869
lea ecx, [esp + 0x50]
and ebx, 0xfffffffd
call fcn.00407820
mov dword [esp + 0x1c0], 8
test bl, 1
je 0x42e885
lea ecx, [esp + 0x5c]
and ebx, 0xfffffffe
call fcn.00407820
cmp byte [esp + 0x33], 0
je 0x42e962
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x61
push ecx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x62
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x170]
mov byte [esp + 0x1c0], 0x63
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x64
push ecx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x16c]
mov byte [esp + 0x1c0], 0x65
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x66
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x67
jmp 0x42eb91
mov eax, dword [esp + 0x164]
cmp dword [eax - 0xc], 0xc
jne 0x42e9d2
push 3
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x16c]
call fcn.00414550
push 0x5fc9a0
mov byte [esp + 0x1c4], 0x68
or ebx, 4
push eax
mov dword [esp + 0x60], ebx
call fcn.004145d0
add esp, 8
test al, al
jne 0x42e9cb
push 3
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x16c]
call fcn.00414550
push 0x5fc9a8
push eax
or ebx, 8
call fcn.004145d0
add esp, 8
test al, al
je 0x42e9d2
mov byte [esp + 0x33], 1
jmp 0x42e9d7
mov byte [esp + 0x33], 0
test bl, 8
je 0x42e9e8
lea ecx, [esp + 0x50]
and ebx, 0xfffffff7
call fcn.00407820
mov dword [esp + 0x1c0], 8
test bl, 4
je 0x42ea01
lea ecx, [esp + 0x5c]
call fcn.00407820
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040ddb0
add esp, 0xc
cmp byte [esp + 0x33], 0
je 0x42eade
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x69
push ecx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x6a
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x170]
mov byte [esp + 0x1c0], 0x6b
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x6c
push ecx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x16c]
mov byte [esp + 0x1c0], 0x6d
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x6e
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x6f
jmp 0x42eb91
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x70
push ecx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x71
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x170]
mov byte [esp + 0x1c0], 0x72
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x73
push ecx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x174]
mov byte [esp + 0x1c0], 0x74
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x75
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x76
push eax
mov ecx, esi
call fcn.0040e750
lea ecx, [esp + 0x50]
call fcn.00407820
lea ecx, [esp + 0x58]
call fcn.00407820
lea ecx, [esp + 0x5c]
call fcn.00407820
lea ecx, [esp + 0x4c]
call fcn.00407820
lea ecx, [esp + 0x54]
call fcn.00407820
lea ecx, [esp + 0x28]
call fcn.00407820
lea ecx, [esp + 0x24]
call fcn.00407820
jmp 0x431618
call fcn.004145d0
add esp, 8
test al, al
je 0x42ebfd
lea eax, [esp + 0x168]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x431618
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x77
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x78
call fcn.0040e750
lea ecx, [esp + 0x50]
call fcn.00407820
lea ecx, [esp + 0x4c]
call fcn.00407820
jmp 0x431618
cmp dword [edi + 0x180], 0
lea ecx, [esp + 0x68]
push 1
jne 0x42ec72
push 0x5f98f4
jmp 0x42ec77
push 0x5f9904
call fcn.00407230
xor ebx, ebx
cmp dword [edi + 0x1e0], ebx
je 0x430f1f
call fcn.00456a6e
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x42eca6
push 0x80004005
call fcn.00407730
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x5c], eax
mov byte [esp + 0x1c0], 9
lea ecx, [esp + 0x5c]
cmp dword [edi + 0x1d8], 0
lea eax, [edi + 0x1e4]
jne 0x42ecd5
lea eax, [edi + 0x1e8]
push eax
call fcn.0040e750
lea ecx, [esp + 0x148]
call fcn.004620ee
push ecx
mov byte [esp + 0x1c4], 0xa
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5f8500
call fcn.00407380
mov byte [esp + 0x1c4], 0xb
mov eax, dword [esp + 0x60]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
mov dword [esp + 0x5c], eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x150]
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x1c8], 0xa
call fcn.004125b0
add esp, 8
mov dword [esp + 0x58], eax
push esi
call fcn.0042d110
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5f8500
call fcn.00407380
mov byte [esp + 0x1c4], 0xc
mov eax, dword [esi]
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x40]
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x1c8], 0xa
call fcn.004125b0
add esp, 8
mov ecx, esi
mov edi, eax
push 0
push 0x5f79a4
call fcn.00407230
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], 0
cmp eax, 0x16
jne 0x4304d1
cmp edi, eax
mov edi, dword [esp + 0x28]
jne 0x42edbf
mov dword [esp + 0x54], 1
jmp 0x42ee19
cmp dword [edi + 0x1d4], 0
jne 0x42ede8
cmp dword [esp + 0x1c], 1
je 0x42ede8
cmp dword [esp + 0x4c], 0
jne 0x430ea3
push 0
push 0
push 0x5fc7e0
jmp 0x430e9e
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x40]
call fcn.004623a0
mov edi, 0x16
lea ebx, [ebx]
push 0x5f79a4
push dword [esp + 0x44]
lea ecx, [esp + 0x40]
call fcn.00462368
dec edi
jne 0x42ee00
mov edi, dword [esp + 0x28]
cmp dword [edi + 0x198], 0
je 0x42ee78
cmp dword [esp + 0x40], 3
jg 0x42ee2e
call fcn.004565e8
mov eax, dword [esp + 0x3c]
add eax, 0xc
push 0x5f79a4
push eax
call fcn.004145d0
add esp, 8
test al, al
je 0x42ee78
cmp dword [edi + 0x194], 0
je 0x42ee78
mov eax, dword [esp + 0x40]
cmp eax, 4
jg 0x42ee5e
call fcn.004565e8
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 0x10]
cmp eax, 3
jg 0x42ee6f
call fcn.004565e8
add ecx, 0xc
push edx
call fcn.0040e750
push 0x5f79a4
lea ecx, [esp + 0x24]
call fcn.00407380
mov byte [esp + 0x1c0], 0xd
mov dword [esp + 0x14], 0
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea esp, [esp]
test ecx, ecx
js 0x42e3a5
cmp ecx, dword [esp + 0x150]
jge 0x42e3a5
mov eax, dword [esp + 0x14c]
push dword [eax + ecx*4]
call fcn.00581121
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x24]
cmp eax, edx
jne 0x4304a4
test ecx, ecx
jne 0x42f0f7
cmp dword [edi + 0x158], ecx
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42ef04
push 4
push str.U_eQ
lea ecx, [esp + 0x28]
call fcn.00407230
jmp 0x42ef82
cmp dword [esp + 0x4c], 1
jne 0x42ef9f
cmp dword [esp + 0x90], 0
jle 0x42e3a5
mov eax, dword [esp + 0x8c]
push ecx
mov edi, esp
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x5c]
add eax, 0x10
mov dword [edi], eax
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0xe
call fcn.0040e750
mov byte [esp + 0x1c0], 0xd
or ecx, 0xffffffff
mov edx, dword [esp + 0x58]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42ef7e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x28]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42efe8
test ebx, ebx
jne 0x42efe8
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea ecx, [esp + 0xec]
call fcn.00412230
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0xf
call fcn.0040e750
mov byte [esp + 0x1c0], 0xd
or ecx, 0xffffffff
mov edx, dword [esp + 0xec]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42ef82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42ef82
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x100]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x10
push ecx
push eax
lea eax, [esp + 0xfc]
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x11
mov edx, dword [eax]
mov ecx, dword [esi]
sub ecx, 0x10
mov dword [esp + 0x6c], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0x7c], eax
cmp eax, ecx
je 0x42f09c
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [esp + 0x108], edi
mov edi, dword [esp + 0x28]
jl 0x42f091
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x42f091
push dword [esp + 0x7c]
call fcn.00407760
mov dword [esp + 0x80], eax
add esp, 4
mov eax, dword [esp + 0x108]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f086
mov eax, dword [esp + 0x6c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x7c]
add eax, 0x10
mov dword [esi], eax
jmp 0x42f09c
push dword [edx - 0xc]
mov ecx, esi
push edx
call fcn.00407230
mov byte [esp + 0x1c0], 0x10
or ecx, 0xffffffff
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f0c5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xfc]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43049b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43049b
cmp ecx, 1
jne 0x42f1ea
cmp dword [edi + 0x18c], 0
je 0x4304a0
cmp dword [esp + 0x1c], ecx
jne 0x42f130
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push 4
push 0x5fc858
lea ecx, [ecx + 4]
call fcn.00407230
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f15b
test ebx, ebx
jne 0x42f15b
cmp dword [esp + 0x40], 1
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 4
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x110]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x12
cmp dword [esp + 0x40], 1
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 4
push ecx
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x13
call fcn.0040e750
mov byte [esp + 0x1c0], 0x12
or ecx, 0xffffffff
mov edx, dword [esp + 0x104]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f1d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0x10c]
jmp 0x42f0d4
cmp ecx, 2
jne 0x42f2e2
cmp dword [edi + 0x170], 0
je 0x4304a0
cmp dword [esp + 0x54], 0
je 0x42f21a
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
add eax, 8
jmp 0x42f23a
cmp dword [esp + 0x1c], 0
je 0x42f233
push 4
push 0x5fabc8
lea ecx, [esp + 0x28]
call fcn.00407230
jmp 0x42f244
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x24]
call fcn.0040e750
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f261
test ebx, ebx
jne 0x42f261
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x120]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x14
push ecx
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x15
call fcn.0040e750
mov byte [esp + 0x1c0], 0x14
or ecx, 0xffffffff
mov edx, dword [esp + 0x114]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f2ce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0x11c]
jmp 0x42f0d4
cmp ecx, 3
jne 0x42f505
cmp dword [edi + 0x190], 0
je 0x4304a0
cmp dword [esp + 0x54], 0
mov eax, dword [esi]
je 0x42f3bc
cmp dword [eax - 0xc], 0
jg 0x42f32d
test ebx, ebx
jne 0x42f32d
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0xc
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x130]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x16
cmp dword [esp + 0x40], 3
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0xc
push ecx
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x17
call fcn.0040e750
mov byte [esp + 0x1c0], 0x16
or ecx, 0xffffffff
mov edx, dword [esp + 0x124]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f3a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0x12c]
jmp 0x42f0d4
cmp dword [esp + 0x1c], 0
je 0x42f463
cmp dword [eax - 0xc], 0
jg 0x42f3e2
test ebx, ebx
jne 0x42f3e2
push 0x5fabd4
mov ecx, esi
call fcn.00407330
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x140]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
push 0x5fabd4
push eax
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c8], 0x18
push eax
call fcn.0040e2f0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x19
call fcn.0040e750
mov byte [esp + 0x1c0], 0x18
or ecx, 0xffffffff
mov edx, dword [esp + 0x134]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f44f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0x13c]
jmp 0x42f0d4
cmp dword [eax - 0xc], 0
jg 0x42f481
test ebx, ebx
jne 0x42f481
lea eax, [esp + 0x168]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xac]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x1a
push ecx
push eax
lea eax, [esp + 0x100]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x1b
call fcn.0040e750
mov byte [esp + 0x1c0], 0x1a
or ecx, 0xffffffff
mov edx, dword [esp + 0xf8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f4f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xa8]
jmp 0x42f0d4
cmp ecx, 4
jne 0x42f604
cmp dword [edi + 0x194], 0
je 0x4304a0
cmp dword [edi + 0x198], 0
jne 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42f54a
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push str.pe5uhy
lea ecx, [ecx + 0x10]
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f575
test ebx, ebx
jne 0x42f575
cmp dword [esp + 0x40], 4
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0x10
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xb4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x1c
cmp dword [esp + 0x40], 4
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x10
push ecx
push eax
lea eax, [esp + 0x140]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x1d
call fcn.0040e750
mov byte [esp + 0x1c0], 0x1c
or ecx, 0xffffffff
mov edx, dword [esp + 0x138]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f5f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xb0]
jmp 0x42f0d4
cmp ecx, 5
jne 0x42f6f8
cmp dword [edi + 0x19c], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42f63e
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push 5
push 0x5fc5d4
lea ecx, [ecx + 0x14]
call fcn.00407230
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f669
test ebx, ebx
jne 0x42f669
cmp dword [esp + 0x40], 5
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0x14
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xbc]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x1e
cmp dword [esp + 0x40], 5
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x14
push ecx
push eax
lea eax, [esp + 0x108]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x1f
call fcn.0040e750
mov byte [esp + 0x1c0], 0x1e
or ecx, 0xffffffff
mov edx, dword [esp + 0x100]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f6e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xb8]
jmp 0x42f0d4
cmp ecx, 6
jne 0x42f7ec
cmp dword [edi + 0x1a0], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42f732
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push 4
push 0x5fc5e0
lea ecx, [ecx + 0x18]
call fcn.00407230
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f75d
test ebx, ebx
jne 0x42f75d
cmp dword [esp + 0x40], 6
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0x18
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xc4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x20
cmp dword [esp + 0x40], 6
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x18
push ecx
push eax
lea eax, [esp + 0x130]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x21
call fcn.0040e750
mov byte [esp + 0x1c0], 0x20
or ecx, 0xffffffff
mov edx, dword [esp + 0x128]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f7d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xc0]
jmp 0x42f0d4
cmp ecx, 7
jne 0x42f8de
cmp dword [edi + 0x1a4], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42f824
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push 0x5fc5ec
lea ecx, [ecx + 0x1c]
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f84f
test ebx, ebx
jne 0x42f84f
cmp dword [esp + 0x40], 7
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0x1c
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xcc]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x22
cmp dword [esp + 0x40], 7
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x1c
push ecx
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x23
call fcn.0040e750
mov byte [esp + 0x1c0], 0x22
or ecx, 0xffffffff
mov edx, dword [esp + 0x9c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f8ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xc8]
jmp 0x42f0d4
cmp ecx, 8
jne 0x42f9d0
cmp dword [edi + 0x1a8], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42f916
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
push 0x5fabec
lea ecx, [ecx + 0x20]
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42f941
test ebx, ebx
jne 0x42f941
cmp dword [esp + 0x40], 8
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
mov ecx, esi
add eax, 0x20
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xd4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x24
cmp dword [esp + 0x40], 8
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x20
push ecx
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x25
call fcn.0040e750
mov byte [esp + 0x1c0], 0x24
or ecx, 0xffffffff
mov edx, dword [esp + 0x144]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f9bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xd0]
jmp 0x42f0d4
cmp ecx, 9
jne 0x42fb67
cmp dword [edi + 0x178], 0
je 0x4304a0
cmp dword [esp + 0x54], 0
je 0x42fa5e
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
push ecx
mov edi, esp
mov eax, dword [eax + 0x24]
sub eax, 0x10
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x114]
add eax, 0x10
mov dword [edi], eax
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x26
call fcn.0040e750
mov byte [esp + 0x1c0], 0xd
or ecx, 0xffffffff
mov edx, dword [esp + 0x110]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42fac5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42fac5
cmp dword [esp + 0x1c], 0
je 0x42fa75
push 0x5fabf8
lea ecx, [esp + 0x24]
call fcn.00407330
jmp 0x42fac9
mov eax, dword [esp + 0x170]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0xdc]
add eax, 0x10
mov dword [edi], eax
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x27
call fcn.0040e750
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42fae6
test ebx, ebx
jne 0x42fae6
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xe4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x28
push ecx
push eax
lea eax, [esp + 0x138]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x29
call fcn.0040e750
mov byte [esp + 0x1c0], 0x28
or ecx, 0xffffffff
mov edx, dword [esp + 0x130]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42fb53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xe0]
jmp 0x42f0d4
cmp ecx, 0xa
jne 0x42fc61
cmp dword [edi + 0x1ac], 0
je 0x4304a0
cmp dword [esp + 0x54], 0
je 0x42fb9f
cmp dword [esp + 0x40], ecx
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x20]
add eax, 0x28
push eax
call fcn.0040e750
cmp dword [esp + 0x1c], 0
lea ecx, [esp + 0x20]
je 0x42fbb6
push 0x5fc864
call fcn.00407330
jmp 0x42fbc3
lea eax, [esp + 0x16c]
push eax
call fcn.0040e750
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42fbe0
test ebx, ebx
jne 0x42fbe0
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xec]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x2a
push ecx
push eax
lea eax, [esp + 0x120]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x2b
call fcn.0040e750
mov byte [esp + 0x1c0], 0x2a
or ecx, 0xffffffff
mov edx, dword [esp + 0x118]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42fc4d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xe8]
jmp 0x42f0d4
cmp ecx, 0xb
jne 0x42fd47
cmp dword [edi + 0x1b8], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42fc94
push 0x5fc4c8
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42fcb8
test ebx, ebx
jne 0x42fcb8
push 0xb
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
mov ecx, esi
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xf4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x2c
cmp dword [esp + 0x40], 0xb
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x2c
push ecx
push eax
lea eax, [esp + 0x148]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x2d
call fcn.0040e750
mov byte [esp + 0x1c0], 0x2c
or ecx, 0xffffffff
mov edx, dword [esp + 0x140]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42fd33
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0xd
mov edx, dword [esp + 0xf0]
jmp 0x42f0d4
cmp ecx, 0xc
jne 0x42fdf7
cmp dword [edi + 0x1b0], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42fd7a
push 0x5fc4d0
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42fd8d
test ebx, ebx
jne 0x42fd8d
push 0xc
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xa4]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x2e
cmp dword [esp + 0x40], 0xc
jle 0x42e3a5
mov ecx, dword [esp + 0x3c]
add ecx, 0x30
push ecx
push eax
lea eax, [esp + 0x128]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x2f
call fcn.0040e750
lea ecx, [esp + 0x120]
call fcn.00407820
lea ecx, [esp + 0xa0]
jmp 0x43048e
cmp ecx, 0xd
jne 0x42feb3
cmp dword [edi + 0x1b4], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42fe2a
push 0x5fc5f8
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42fe3d
test ebx, ebx
jne 0x42fe3d
push 0xd
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xb0]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0xd
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x30
call fcn.0040e560
push eax
lea eax, [esp + 0xa8]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x31
call fcn.0040e750
lea ecx, [esp + 0xa4]
call fcn.00407820
lea ecx, [esp + 0xac]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0xe
jne 0x42ff66
cmp dword [edi + 0x15c], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
lea ecx, [esp + 0x20]
jne 0x42fee0
push 0x5fc874
call fcn.00407330
jmp 0x42feed
lea eax, [esp + 0x174]
push eax
call fcn.0040e750
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42ff0a
test ebx, ebx
jne 0x42ff0a
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xc0]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x32
push ecx
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x33
call fcn.0040e750
lea ecx, [esp + 0xb4]
call fcn.00407820
lea ecx, [esp + 0xbc]
jmp 0x43048e
cmp ecx, 0xf
jne 0x430022
cmp dword [edi + 0x1bc], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x42ff99
push 0x5fc604
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x42ffac
test ebx, ebx
jne 0x42ffac
push 0xf
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xd0]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0xf
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x34
call fcn.0040e560
push eax
lea eax, [esp + 0xc8]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x35
call fcn.0040e750
lea ecx, [esp + 0xc4]
call fcn.00407820
lea ecx, [esp + 0xcc]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0x10
jne 0x4300de
cmp dword [edi + 0x1c0], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x430055
push 0x5fc610
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x430068
test ebx, ebx
jne 0x430068
push 0x10
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0xe0]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0x10
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x36
call fcn.0040e560
push eax
lea eax, [esp + 0xd8]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x37
call fcn.0040e750
lea ecx, [esp + 0xd4]
call fcn.00407820
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0x11
jne 0x430194
cmp dword [edi + 0x1c4], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x430111
push 0x5fac18
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x430124
test ebx, ebx
jne 0x430124
push 0x11
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x78]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0x11
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x38
call fcn.0040e560
push eax
lea eax, [esp + 0xe8]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x39
call fcn.0040e750
lea ecx, [esp + 0xe4]
call fcn.00407820
lea ecx, [esp + 0x74]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0x12
jne 0x430244
cmp dword [edi + 0x1c8], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x4301c7
push 0x5fc61c
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x4301da
test ebx, ebx
jne 0x4301da
push 0x12
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x74]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0x12
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x3a
call fcn.0040e560
push eax
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x3b
call fcn.0040e750
lea ecx, [esp + 0x78]
call fcn.00407820
lea ecx, [esp + 0x70]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0x13
jne 0x430300
cmp dword [edi + 0x1cc], 0
je 0x4304a0
cmp dword [esp + 0x1c], 1
jne 0x430277
push 0x5fc50c
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e560
mov ecx, eax
call fcn.00407330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x43028a
test ebx, ebx
jne 0x43028a
push 0x13
jmp 0x42fca2
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x88]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
mov edi, eax
push 0x13
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c4], 0x3c
call fcn.0040e560
push eax
lea eax, [esp + 0x84]
push edi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x3d
call fcn.0040e750
lea ecx, [esp + 0x80]
call fcn.00407820
lea ecx, [esp + 0x84]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov edi, dword [esp + 0x28]
jmp 0x43049b
cmp ecx, 0x14
jne 0x4303cb
cmp dword [edi + 0x11c], 0
je 0x4304a0
cmp dword [esp + 0x4c], 1
jne 0x430337
cmp dword [esp + 0x90], 2
jle 0x42e3a5
mov eax, dword [esp + 0x8c]
add eax, 8
jmp 0x430354
cmp dword [esp + 0x1c], 1
jne 0x43034e
push 0x5fc888
lea ecx, [esp + 0x24]
call fcn.00407330
jmp 0x43035e
lea eax, [edi + 0x124]
push eax
lea ecx, [esp + 0x24]
call fcn.0040e750
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x43037b
test ebx, ebx
jne 0x43037b
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x64]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x3e
push ecx
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x3f
call fcn.0040e750
lea ecx, [esp + 0x64]
call fcn.00407820
lea ecx, [esp + 0x60]
jmp 0x43048e
cmp ecx, 0x15
jne 0x4304a0
cmp dword [edi + 0x160], 0
je 0x4304a0
cmp dword [esp + 0x4c], 1
jne 0x430402
cmp dword [esp + 0x90], 3
jle 0x42e3a5
mov eax, dword [esp + 0x8c]
add eax, 0xc
jmp 0x43041f
cmp dword [esp + 0x1c], 1
jne 0x430419
push 0x5fc890
lea ecx, [esp + 0x24]
call fcn.00407330
jmp 0x430429
lea eax, [edi + 0x168]
push eax
lea ecx, [esp + 0x24]
call fcn.0040e750
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x430443
test ebx, ebx
jne 0x430443
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43049b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 0x40
push ecx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x41
call fcn.0040e750
lea ecx, [esp + 0x34]
call fcn.00407820
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1c0], 0xd
call fcn.00407820
mov ecx, dword [esp + 0x24]
inc ebx
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, 0x16
jl 0x42eea0
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x16
jl 0x42ee96
mov byte [esp + 0x1c0], 0xa
mov edx, dword [esp + 0x20]
jmp 0x430e45
cmp eax, 0x13
jne 0x430e87
cmp edi, eax
mov edi, dword [esp + 0x28]
jne 0x4304ec
mov dword [esp + 0x54], 1
jmp 0x43052b
cmp dword [edi + 0x1d4], 0
jne 0x430500
cmp dword [esp + 0x1c], 1
jne 0x42edcf
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x40]
call fcn.004623a0
mov edi, 0x13
push 0x5f79a4
push dword [esp + 0x44]
lea ecx, [esp + 0x40]
call fcn.00462368
dec edi
jne 0x430512
mov edi, dword [esp + 0x28]
cmp dword [edi + 0x198], 0
je 0x43058a
cmp dword [esp + 0x40], 3
jg 0x430540
call fcn.004565e8
mov eax, dword [esp + 0x3c]
add eax, 0xc
push 0x5f79a4
push eax
call fcn.004145d0
add esp, 8
test al, al
je 0x43058a
cmp dword [edi + 0x194], 0
je 0x43058a
mov eax, dword [esp + 0x40]
cmp eax, 1
jg 0x430570
call fcn.004565e8
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 4]
cmp eax, 3
jg 0x430581
call fcn.004565e8
add ecx, 0xc
push edx
call fcn.0040e750
push 0x5f79a4
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], 0
call fcn.00407380
mov byte [esp + 0x1c0], 0x42
mov dword [esp + 0x24], 0
xor ecx, ecx
mov dword [esp + 0x58], ecx
test ecx, ecx
js 0x42e3a5
cmp ecx, dword [esp + 0x150]
jge 0x42e3a5
mov eax, dword [esp + 0x14c]
push dword [eax + ecx*4]
call fcn.00581121
mov edx, dword [esp + 0x28]
add esp, 4
cmp eax, edx
jne 0x430df7
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x43061d
lea ecx, [esp + 0x14]
cmp dword [esp + 0x1c], eax
je 0x43060c
push 5
push 0x5fc898
call fcn.00407230
jmp 0x4307cf
push 1
push 0x5fc8a4
call fcn.00407230
jmp 0x4307cf
cmp eax, 1
jne 0x430677
cmp dword [edi + 0x194], 0
je 0x430dd7
cmp dword [edi + 0x198], 0
jne 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x430656
push str.pe5uhy
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
cmp dword [esp + 0x40], 1
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
add eax, 4
push eax
call fcn.0040e750
jmp 0x4307cf
cmp eax, 2
jne 0x4306dc
cmp dword [edi + 0x170], 0
je 0x430dd7
cmp dword [esp + 0x54], 0
je 0x4306b0
cmp dword [esp + 0x40], eax
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
add eax, 8
push eax
call fcn.0040e750
jmp 0x4307cf
cmp dword [esp + 0x1c], 0
lea ecx, [esp + 0x14]
je 0x4306ca
push 0x5fabc8
call fcn.00407330
jmp 0x4307cf
lea eax, [esp + 0x164]
push eax
call fcn.0040e750
jmp 0x4307cf
cmp eax, 3
jne 0x430741
cmp dword [edi + 0x190], 0
je 0x430dd7
cmp dword [esp + 0x54], 0
je 0x430715
cmp dword [esp + 0x40], eax
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
add eax, 0xc
push eax
call fcn.0040e750
jmp 0x4307cf
cmp dword [esp + 0x1c], 0
lea ecx, [esp + 0x14]
je 0x43072f
push 0x5fabd4
call fcn.00407330
jmp 0x4307cf
lea eax, [esp + 0x168]
push eax
call fcn.0040e750
jmp 0x4307cf
cmp eax, 4
jne 0x430855
cmp dword [edi + 0x178], 0
je 0x430dd7
cmp dword [esp + 0x54], 0
je 0x4307f4
cmp dword [esp + 0x40], eax
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
push ecx
mov edi, esp
mov eax, dword [eax + 0x10]
sub eax, 0x10
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x30]
add eax, 0x10
mov dword [edi], eax
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], 0x43
call fcn.0040e750
mov byte [esp + 0x1c0], 0x42
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4307cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x28]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x430cdc
test ebx, ebx
jne 0x430cdc
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x430dd6
cmp dword [esp + 0x1c], 0
je 0x43080b
push 0x5fc8a8
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
mov eax, dword [esp + 0x170]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.00407760
add esp, 4
lea ecx, [esp + 0x38]
add eax, 0x10
mov dword [edi], eax
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], 0x44
call fcn.0040e750
mov byte [esp + 0x1c0], 0x42
mov edx, dword [esp + 0x34]
jmp 0x4307b1
cmp eax, 5
jne 0x4308ba
cmp dword [edi + 0x1ac], 0
je 0x430dd7
cmp dword [esp + 0x54], 0
je 0x43088e
cmp dword [esp + 0x40], eax
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
add eax, 0x14
push eax
call fcn.0040e750
jmp 0x4307cf
cmp dword [esp + 0x1c], 0
lea ecx, [esp + 0x14]
je 0x4308a8
push 0x5fc8b4
call fcn.00407330
jmp 0x4307cf
lea eax, [esp + 0x16c]
push eax
call fcn.0040e750
jmp 0x4307cf
cmp eax, 6
jne 0x430907
cmp dword [edi + 0x1b0], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x4308e6
push 0x5fc8bc
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
cmp dword [esp + 0x40], 6
jle 0x42e3a5
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
add eax, 0x18
push eax
call fcn.0040e750
jmp 0x4307cf
cmp eax, 7
jne 0x430933
cmp dword [edi + 0x1b0], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x4308e6
push str._tgHe
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
cmp eax, 8
jne 0x430979
cmp dword [edi + 0x1a4], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x43095f
push 0x5fc8d8
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 8
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 9
jne 0x4309bf
cmp dword [edi + 0x1a0], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x4309a5
push 0x5fc8e8
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 9
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0xa
jne 0x430a05
cmp dword [edi + 0x19c], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x4309eb
push 0x5fc8fc
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xa
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0xb
jne 0x430a4b
cmp dword [edi + 0x1bc], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x430a31
push 0x5fc604
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xb
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0xc
jne 0x430ae4
cmp dword [edi + 0x1c0], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x430a7b
push 0x5fc910
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xc
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
cmp dword [edi + 0x1d4], 0
jne 0x4307cf
push 0xc
lea ecx, [esp + 0x3c]
call fcn.0040e560
mov dword [esp + 0x60], eax
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
jl 0x430ad7
push 0x5fc918
push ecx
call fcn.005813c9
add esp, 8
test eax, eax
je 0x430ad7
mov ecx, dword [esp + 0x60]
sub eax, dword [ecx]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4307cf
mov dword [esp + 0x20], 1
jmp 0x4307cf
cmp eax, 0xd
jne 0x430b2a
cmp dword [edi + 0x1c4], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x430b10
push 0x5fac18
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xd
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0xe
jne 0x430b63
cmp dword [esp + 0x1c], 0
je 0x430b49
push 0x5fc91c
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xe
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0xf
jne 0x430b9c
cmp dword [esp + 0x1c], 0
je 0x430b82
push 0x5fc92c
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0xf
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0x10
jne 0x430bd5
cmp dword [esp + 0x1c], 0
je 0x430bbb
push 0x5fc93c
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0x10
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
cmp eax, 0x11
jne 0x430c92
cmp dword [esp + 0x1c], 0
je 0x430bf8
push 0x5fc948
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
lea ecx, [esp + 0x64]
call fcn.00412230
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], 0x45
call fcn.0040e750
lea ecx, [esp + 0x64]
mov byte [esp + 0x1c0], 0x42
call fcn.00407820
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x4307cf
push 0x5f82b0
push eax
call fcn.005813c9
add esp, 8
test eax, eax
je 0x4307cf
sub eax, dword [esp + 0x14]
sar eax, 1
js 0x4307cf
push 0xa
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040dd00
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], 0x46
call fcn.0040e750
lea ecx, [esp + 0x84]
mov byte [esp + 0x1c0], 0x42
call fcn.00407820
jmp 0x4307cf
cmp eax, 0x12
jne 0x430dd7
cmp dword [edi + 0x1c8], 0
je 0x430dd7
cmp dword [esp + 0x1c], 0
je 0x430cc2
push 0x5fc61c
lea ecx, [esp + 0x18]
call fcn.00407330
jmp 0x4307cf
push 0x12
lea ecx, [esp + 0x3c]
call fcn.0040e560
push eax
lea ecx, [esp + 0x18]
call fcn.0040e750
jmp 0x4307cf
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x78]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x14]
mov byte [esp + 0x1c0], 0x47
push ecx
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0040ddb0
add esp, 0xc
mov byte [esp + 0x1c0], 0x48
mov edx, dword [eax]
mov ecx, dword [esi]
sub ecx, 0x10
mov dword [esp + 0x70], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0x60], eax
cmp eax, ecx
je 0x430d8a
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x28]
jl 0x430d7f
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x430d7f
push dword [esp + 0x60]
call fcn.00407760
mov dword [esp + 0x64], eax
add esp, 4
mov eax, dword [esp + 0x80]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430d74
mov eax, dword [esp + 0x70]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x60]
add eax, 0x10
mov dword [esi], eax
jmp 0x430d8a
push dword [edx - 0xc]
mov ecx, esi
push edx
call fcn.00407230
mov byte [esp + 0x1c0], 0x47
or ecx, 0xffffffff
mov edx, dword [esp + 0x78]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430db0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 0x42
or ecx, 0xffffffff
mov edx, dword [esp + 0x74]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430dd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x430dfd
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, 0x13
jl 0x4305b6
jmp 0x430e01
mov eax, dword [esp + 0x20]
jmp 0x430de3
mov edx, dword [esp + 0x24]
cmp eax, 1
je 0x430e16
inc edx
mov dword [esp + 0x24], edx
cmp edx, 0x13
jl 0x4305b0
jmp 0x430e39
push 0
push 0x5f79a4
mov ecx, esi
call fcn.00407230
cmp dword [esp + 0x4c], 1
je 0x430e39
push 0
push 0
push 0x5fc954
call fcn.0045fca5
mov byte [esp + 0x1c0], 0xa
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430e5f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x148]
mov byte [esp + 0x1c0], 9
call fcn.00462105
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x50]
jmp 0x4315bb
cmp dword [esp + 0x4c], 0
jne 0x430ea3
cmp dword [esp + 0x1c], 0
jne 0x430ea3
push 0
push 0
push 0x5fc980
call fcn.0045fca5
lea ecx, [esp + 0x148]
mov byte [esp + 0x1c0], 9
call fcn.00462105
mov byte [esp + 0x1c0], 8
or ebx, 0xffffffff
mov edx, dword [esp + 0x50]
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430edc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 7
mov ecx, ebx
mov edx, dword [esp + 0x68]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430f01
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 4
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jmp 0x43165a
push ecx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x178]
call fcn.0040dd70
push eax
lea eax, [esp + 0x174]
push eax
call fcn.0040e850
mov byte [esp + 0x3b], al
add esp, 8
mov eax, dword [esp + 0x2c]
or edx, 0xffffffff
add eax, 0xfffffff0
mov dword [esp + 0x34], eax
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430f6b
mov ecx, dword [eax]
push dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [esp + 0x33], bl
je 0x43105b
push 2
push 4
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x17c]
call fcn.0040e4b0
push dword [eax]
call fcn.00581121
mov dword [esp + 0x64], eax
add esp, 4
mov eax, dword [esp + 0x2c]
or edx, 0xffffffff
add eax, 0xfffffff0
mov dword [esp + 0x34], eax
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430fbd
mov ecx, dword [eax]
push dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 4]
push 2
push 6
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x17c]
call fcn.0040e4b0
push dword [eax]
call fcn.00581121
mov dword [esp + 0x68], eax
add esp, 4
mov eax, dword [esp + 0x2c]
or edx, 0xffffffff
add eax, 0xfffffff0
mov dword [esp + 0x34], eax
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431005
mov ecx, dword [eax]
push dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x60]
dec eax
cmp eax, 0xb
ja 0x43105b
mov eax, dword [esp + 0x64]
dec eax
cmp eax, 0x1e
ja 0x43105b
push ecx
lea eax, [esp + 0x174]
mov ecx, esp
push eax
call fcn.004077d0
lea ecx, [esp + 0x30]
call fcn.004122e0
add esp, 4
push eax
lea ecx, [esp + 0x174]
mov byte [esp + 0x1c4], 0x49
call fcn.0040e750
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1c0], 8
call fcn.00407820
cmp dword [edi + 0x158], 0
je 0x4310aa
lea ecx, [esp + 0x2c]
call fcn.00412230
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x4a
call fcn.0040e750
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4310a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, 1
jmp 0x4310b6
push 0x5f79a4
mov ecx, esi
call fcn.00407330
cmp dword [edi + 0x170], 0
je 0x431171
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x4310e3
test ebx, ebx
jne 0x4310e3
lea eax, [esp + 0x164]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x431170
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x164]
mov byte [esp + 0x1c0], 0x4b
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x4c
call fcn.0040e750
mov byte [esp + 0x1c0], 0x4b
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43114a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431170
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x174], 0
je 0x43122c
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x43119e
test ebx, ebx
jne 0x43119e
lea eax, [esp + 0x168]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43122b
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x168]
mov byte [esp + 0x1c0], 0x4d
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x4e
call fcn.0040e750
mov byte [esp + 0x1c0], 0x4d
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431205
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43122b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x178], 0
je 0x4312e7
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x431259
test ebx, ebx
jne 0x431259
lea eax, [esp + 0x170]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x4312e6
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x170]
mov byte [esp + 0x1c0], 0x4f
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x50
call fcn.0040e750
mov byte [esp + 0x1c0], 0x4f
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4312c0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4312e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x17c], 0
je 0x4313a2
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x431314
test ebx, ebx
jne 0x431314
lea eax, [esp + 0x16c]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x4313a1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x16c]
mov byte [esp + 0x1c0], 0x51
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x52
call fcn.0040e750
mov byte [esp + 0x1c0], 0x51
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43137b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4313a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x15c], 0
je 0x43145d
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x4313cf
test ebx, ebx
jne 0x4313cf
lea eax, [esp + 0x174]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x43145c
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [esp + 0x174]
mov byte [esp + 0x1c0], 0x53
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x54
call fcn.0040e750
mov byte [esp + 0x1c0], 0x53
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431436
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43145c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x11c], 0
je 0x431516
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x431489
test ebx, ebx
jne 0x431489
lea eax, [edi + 0x124]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x431515
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [edi + 0x124]
mov byte [esp + 0x1c0], 0x55
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x56
call fcn.0040e750
mov byte [esp + 0x1c0], 0x55
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4314ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431515
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc ebx
cmp dword [edi + 0x160], 0
je 0x4315cf
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jg 0x431542
test ebx, ebx
jne 0x431542
lea eax, [edi + 0x168]
mov ecx, esi
push eax
call fcn.0040e750
jmp 0x4315cf
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
lea ecx, [edi + 0x168]
mov byte [esp + 0x1c0], 0x57
push ecx
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x58
call fcn.0040e750
mov byte [esp + 0x1c0], 0x57
or ebx, 0xffffffff
mov edx, dword [esp + 0x2c]
mov ecx, ebx
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4315aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 8
mov ecx, ebx
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4315cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x30]
push esi
push eax
call fcn.0040ddb0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 0x59
call fcn.0040e750
mov byte [esp + 0x1c0], 8
or ecx, 0xffffffff
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431618
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 7
or ecx, 0xffffffff
mov edx, dword [esp + 0x68]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43163e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x1c0], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431664
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push fcn.00407820
push 0x14
push 4
lea eax, [esp + 0x168]
mov byte [esp + 0x1cc], 2
push eax
call fcn.005801d9
lea ecx, [esp + 0x38]
mov byte [esp + 0x1c0], 0
call fcn.00462105
lea ecx, [esp + 0x88]
mov dword [esp + 0x1c0], 0xffffffff
call fcn.00462105
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.0057f07f
mov esp, ebp
pop ebp
ret 4