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

Disassembly:
push 0xffffffffffffffff
push 0x47d5f9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x390
mov eax, dword [0x4a8ae4]
xor eax, esp
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3ac]
mov dword [esp + 0x48], ecx
xor ebx, ebx
push edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x39c], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
call fcn.0042c3a0
mov dword [esp + 0x3a8], ebx
call fcn.004621d7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ebp, 0xf
mov dword [esp + 0x2f0], ebp
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
mov dword [esp + 0x360], ebp
mov dword [esp + 0x35c], ebx
mov byte [esp + 0x34c], bl
mov dword [esp + 0x37c], ebp
mov dword [esp + 0x378], ebx
mov byte [esp + 0x368], bl
mov dword [esp + 0x344], ebp
mov dword [esp + 0x340], ebx
mov byte [esp + 0x330], bl
mov dword [esp + 0x328], ebp
mov dword [esp + 0x324], ebx
mov byte [esp + 0x314], bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
push 0x489aa4
mov byte [esp + 0x3ac], 7
mov dword [esp + 0x310], 7
mov dword [esp + 0x30c], ebx
mov word [esp + 0x2fc], bx
call fcn.00449da9
add esp, 4
push eax
push 0x489aa4
lea ecx, [esp + 0x2fc]
call fcn.00402410
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
push ebx
push ebx
lea ecx, [esp + 0xdc]
mov byte [esp + 0x3b0], 9
call fcn.00428da0
push 0x489aa4
lea ecx, [esp + 0x40]
mov byte [esp + 0x3ac], 0xa
call fcn.00406210
mov byte [esp + 0x3a8], 0xb
mov byte [esp + 0x23], bl
mov eax, dword [esp + 0x2f0]
cmp eax, 0x10
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x60], ebx
mov ecx, edx
jae 0x414ec4
lea ecx, [esp + 0x2dc]
mov edi, dword [esp + 0x2ec]
add ecx, edi
cmp eax, 0x10
mov eax, edx
jae 0x414edb
lea eax, [esp + 0x2dc]
push ecx
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2e4]
call fcn.00401a90
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call fcn.0042b760
mov edi, eax
lea edx, [esp + 0x2bc]
push edx
mov ecx, esi
mov byte [esp + 0x3ac], 0xc
call fcn.0042b760
mov ecx, dword [eax + 0x18]
mov edi, dword [edi + 0x14]
mov esi, 8
cmp ecx, esi
mov byte [esp + 0x3a8], 0xd
jb 0x414f32
mov eax, dword [eax + 4]
jmp 0x414f35
add eax, 4
lea ecx, [edi + edi]
push ecx
push eax
lea ecx, [esp + 0x2e0]
call fcn.00402320
cmp dword [esp + 0x2d4], esi
jb 0x414f5f
mov edx, dword [esp + 0x2c0]
push edx
call fcn.004620d3
add esp, 4
cmp dword [esp + 0xac], esi
mov dword [esp + 0x2d4], 7
mov dword [esp + 0x2d0], ebx
mov word [esp + 0x2c0], bx
jb 0x414f92
mov eax, dword [esp + 0x98]
push eax
call fcn.004620d3
add esp, 4
mov dword [esp + 0x398], ebp
mov dword [esp + 0x394], ebx
mov byte [esp + 0x384], bl
lea ecx, [esp + 0x380]
push ecx
lea edx, [esp + 0x330]
push edx
lea eax, [esp + 0x318]
push eax
lea ecx, [esp + 0x2e4]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x3b8], 0xe
call fcn.0042d5f0
mov edi, eax
mov dword [esp + 0x14], edi
call fcn.00476002
cmp edi, ebx
mov esi, dword [eax + 4]
mov edx, dword [esi + 0x15c]
mov dword [esp + 0x30], esi
mov dword [esi + 0xda4], edx
je 0x415e37
lea ecx, [esp + 0x68]
call fcn.00438680
lea eax, [esp + 0x2d8]
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x3ac], 0xf
call fcn.00438930
test eax, eax
jne 0x415d6d
lea ecx, [esp + 0x64]
call fcn.0043a740
lea ecx, [esp + 0x2d8]
push ecx
lea ecx, [esp + 0x68]
mov byte [esp + 0x3ac], 0x10
call fcn.0043a810
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0xdd8], eax
cmp dword [esi + 0xdc8], ebx
mov byte [esp + 0x10], bl
mov dword [esp + 0x14], ebx
je 0x4151e8
mov edx, esi
add edx, 0xdac
push edx
lea ecx, [esp + 0x70]
call fcn.004037f0
push 0x2c
call fcn.004620a8
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x11
je 0x4150a0
mov ecx, eax
call fcn.00431d20
mov edi, eax
jmp 0x4150a2
xor edi, edi
push 0x2c
mov byte [esp + 0x3ac], 0x10
mov dword [esp + 0x28], edi
call fcn.004620a8
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x12
je 0x4150d3
mov ecx, eax
call fcn.00431d20
mov esi, eax
jmp 0x4150d5
xor esi, esi
push 0x3e8
mov ecx, edi
mov byte [esp + 0x3ac], 0x10
mov dword [esp + 0x1c], esi
call fcn.004313f0
push 0x3ea
mov ecx, esi
call fcn.004313f0
sub esp, 0x10
lea eax, [esp + 0x7c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.0040c5e0
push 0x3ed
mov ecx, esi
call fcn.00431e10
mov ecx, esi
call fcn.004314d0
lea ecx, [esp + 0x348]
push ecx
mov ecx, esi
call fcn.00431bc0
lea edx, [esp + 0x348]
push edx
lea ecx, [esp + 0x54]
call fcn.0040cad0
lea eax, [esp + 0x50]
push eax
push 0x3e9
mov ecx, edi
call fcn.004319a0
mov ecx, edi
call fcn.004314d0
lea ecx, [esp + 0x364]
push ecx
mov ecx, edi
call fcn.00431bc0
mov dword [esp + 0x2d4], ebp
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
lea edx, [esp + 0x2bc]
push edx
lea eax, [esp + 0x330]
push eax
lea ecx, [esp + 0x318]
push ecx
lea edx, [esp + 0x370]
push edx
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3bc], 0x13
call fcn.0042d490
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x4151c6
mov byte [esp + 0x12], 1
mov byte [esp + 0x10], 1
cmp dword [esp + 0x2d4], 0x10
mov byte [esp + 0x3a8], 0x10
jb 0x4151e8
mov ecx, dword [esp + 0x2c0]
push ecx
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x30]
add eax, 0xd58
mov dword [esp + 0x44], eax
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x4153f8
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
cmp ebp, ebx
jle 0x4153f8
mov eax, ebp
imul eax, eax, 0x1c
mov dword [esp + 0x34], eax
lea ecx, [ecx]
cmp byte [esp + 0x12], bl
jne 0x4153f8
cmp byte [esp + 0x10], bl
jne 0x415d50
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xd5c]
sub ecx, 0x1c
add eax, ecx
mov dword [esp + 0x34], ecx
push eax
lea ecx, [esp + 0x70]
dec ebp
call fcn.004037f0
push 0x2c
call fcn.004620a8
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x14
je 0x41528b
mov ecx, eax
call fcn.00431d20
mov edi, eax
jmp 0x41528d
xor edi, edi
push 0x2c
mov byte [esp + 0x3ac], 0x10
mov dword [esp + 0x28], edi
call fcn.004620a8
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x15
je 0x4152be
mov ecx, eax
call fcn.00431d20
mov esi, eax
jmp 0x4152c0
xor esi, esi
push 0x3e8
mov ecx, edi
mov byte [esp + 0x3ac], 0x10
mov dword [esp + 0x1c], esi
call fcn.004313f0
push 0x3ea
mov ecx, esi
call fcn.004313f0
sub esp, 0x10
lea edx, [esp + 0x7c]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.0040c5e0
push 0x3ed
mov ecx, esi
call fcn.00431e10
mov ecx, esi
call fcn.004314d0
lea eax, [esp + 0x348]
push eax
mov ecx, esi
call fcn.00431bc0
lea ecx, [esp + 0x348]
push ecx
lea ecx, [esp + 0x54]
call fcn.0040cad0
lea edx, [esp + 0x50]
push edx
push 0x3e9
mov ecx, edi
call fcn.004319a0
mov ecx, edi
call fcn.004314d0
lea eax, [esp + 0x364]
push eax
mov ecx, edi
call fcn.00431bc0
mov dword [esp + 0x2d4], 0xf
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
lea ecx, [esp + 0x2bc]
push ecx
lea edx, [esp + 0x330]
push edx
lea eax, [esp + 0x318]
push eax
lea ecx, [esp + 0x370]
push ecx
lea edx, [esp + 0x2e8]
push edx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3bc], 0x16
call fcn.0042d490
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x4153b5
mov byte [esp + 0x12], 1
mov byte [esp + 0x10], 1
cmp dword [esp + 0x2d4], 0x10
mov byte [esp + 0x3a8], 0x10
jb 0x4153d7
mov eax, dword [esp + 0x2c0]
push eax
call fcn.004620d3
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x2d4], 0xf
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
jg 0x415230
cmp byte [esp + 0x10], bl
jne 0x415d18
cmp byte [esp + 0x13], bl
jne 0x415d18
cmp byte [esp + 0x12], bl
jne 0x415d1e
lea ecx, [esp + 0x1c]
call fcn.00403ad0
mov edi, dword [esp + 0x40]
lea ecx, [esp + 0x94]
push ecx
mov ecx, edi
call fcn.0042b730
mov esi, eax
lea edx, [esp + 0xb8]
push edx
mov ecx, edi
mov byte [esp + 0x3ac], 0x17
call fcn.0042b730
mov ecx, dword [eax + 0x18]
mov esi, dword [esi + 0x14]
mov edi, 8
cmp ecx, edi
mov byte [esp + 0x3a8], 0x18
jb 0x415467
mov eax, dword [eax + 4]
jmp 0x41546a
add eax, 4
push esi
push eax
lea ecx, [esp + 0x24]
call fcn.004082f0
cmp dword [esp + 0xd0], edi
jb 0x41548e
mov eax, dword [esp + 0xbc]
push eax
call fcn.004620d3
add esp, 4
cmp dword [esp + 0xac], edi
mov esi, 7
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], bx
mov byte [esp + 0x3a8], 0x10
jb 0x4154ca
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004620d3
add esp, 4
cmp byte [esp + 0x11], bl
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], ebx
mov word [esp + 0x98], bx
jne 0x4157c9
mov ebp, dword [esp + 0x30]
mov edx, dword [ebp + 0x15c]
push edx
lea ecx, [esp + 0xd8]
call fcn.00428c80
cmp dword [ebp + 0x168], ebx
je 0x415690
cmp dword [esp + 0x60], ebx
je 0x4155ee
push ebx
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00401bb0
lea ecx, [esp + 0xdc]
call fcn.00429810
cmp dword [ebp + 0xb8], 2
jb 0x415712
cmp eax, 1
jne 0x415712
lea ecx, [esp + 0x2f4]
call fcn.0040c0e0
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0xd8]
call fcn.00428fc0
mov esi, eax
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0xd8]
mov byte [esp + 0x3ac], 0x19
call fcn.00428fc0
mov ecx, dword [esi]
mov ecx, dword [ecx - 0xc]
push ecx
mov ecx, eax
mov byte [esp + 0x3ac], 0x1a
call fcn.004042e0
push eax
lea ecx, [esp + 0x2fc]
call fcn.00401d60
lea ecx, [esp + 0x80]
call fcn.00401880
lea ecx, [esp + 0x8c]
mov byte [esp + 0x3a8], 0x10
call fcn.00401880
lea ecx, [esp + 0xd4]
call fcn.00428c90
push ebx
lea ecx, [esp + 0xd8]
mov byte [esp + 0x15], al
mov dword [esp + 0x18], ebx
call fcn.00428ce0
jmp 0x41560f
mov eax, dword [ebp + 0x170]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x2fc]
call fcn.00401d60
cmp dword [esp + 0x14], ebx
jne 0x415c13
lea ecx, [esp + 0x348]
call fcn.00401c30
lea ecx, [esp + 0x364]
call fcn.00401c30
lea ecx, [esp + 0x32c]
call fcn.00401c30
lea ecx, [esp + 0x310]
call fcn.00401c30
lea ecx, [esp + 0x6c]
call fcn.0040a730
lea ecx, [esp + 0x50]
call fcn.0040ca20
lea eax, [esp + 0x2f4]
push eax
lea ecx, [esp + 0x70]
call fcn.004037f0
push 0x2c
call fcn.004620a8
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x1d
je 0x4157d2
mov ecx, eax
call fcn.00431d20
mov dword [esp + 0x24], eax
jmp 0x4157d6
mov eax, dword [esp + 0x1c]
push ebx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00401570
add eax, 0x10
add esp, 4
lea ecx, [esp + 0xdc]
mov dword [esi], eax
call fcn.00429810
mov esi, eax
cmp esi, 1
jne 0x4156fb
cmp dword [ebp + 0xddc], ebx
je 0x4156fb
lea edx, [esp + 0x380]
push edx
lea eax, [esp + 0x330]
push eax
lea ecx, [esp + 0x318]
push ecx
lea edx, [esp + 0x2e4]
push edx
lea ecx, [esp + 0x38]
call fcn.0042d5f0
mov edi, eax
cmp edi, ebx
jne 0x415c22
cmp dword [ebp + 0xb8], 2
jae 0x415734
mov ecx, dword [esp + 0x4c]
push 0xf4
call fcn.0040e720
lea ecx, [esp + 0x2f4]
call fcn.0040c0e0
mov byte [esp + 0x11], bl
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], 0x80004005
jmp 0x415c13
cmp esi, 1
jne 0x415712
lea ecx, [esp + 0x2f4]
call fcn.0040c0e0
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0xd8]
call fcn.00428fc0
mov esi, eax
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0xd8]
mov byte [esp + 0x3ac], 0x1b
call fcn.00428fc0
mov edx, dword [esi]
mov ecx, dword [edx - 0xc]
push ecx
mov ecx, eax
mov byte [esp + 0x3ac], 0x1c
call fcn.004042e0
push eax
lea ecx, [esp + 0x2fc]
call fcn.00401d60
lea ecx, [esp + 0x90]
call fcn.00401880
lea ecx, [esp + 0x88]
mov byte [esp + 0x3a8], 0x10
call fcn.00401880
lea ecx, [esp + 0xd4]
call fcn.00428c90
mov byte [esp + 0x11], al
mov dword [esp + 0x14], ebx
jmp 0x41560f
mov dword [esp + 0x24], ebx
push 0x2c
mov byte [esp + 0x3ac], 0x10
call fcn.004620a8
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x3a8], 0x1e
je 0x415803
mov ecx, eax
call fcn.00431d20
mov ebp, eax
jmp 0x415805
xor ebp, ebp
mov esi, dword [esp + 0x24]
push 0x3e8
mov ecx, esi
mov byte [esp + 0x3ac], 0x10
call fcn.004313f0
push 0x3ea
mov ecx, ebp
call fcn.004313f0
sub esp, 0x10
lea edx, [esp + 0x7c]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0040c5e0
push 0x3ed
mov ecx, ebp
call fcn.00431e10
mov ecx, ebp
call fcn.004314d0
lea eax, [esp + 0x348]
push eax
mov ecx, ebp
call fcn.00431bc0
lea ecx, [esp + 0x348]
push ecx
lea ecx, [esp + 0x54]
call fcn.0040cad0
lea edx, [esp + 0x50]
push edx
push 0x3e9
mov ecx, esi
call fcn.004319a0
mov ecx, esi
call fcn.004314d0
lea eax, [esp + 0x364]
push eax
mov ecx, esi
call fcn.00431bc0
mov esi, 0xf
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
mov edi, dword [esp + 0x30]
cmp dword [edi + 0xddc], ebx
mov byte [esp + 0x3a8], 0x1f
jne 0x4158f9
lea ecx, [esp + 0x2bc]
push ecx
lea edx, [esp + 0x330]
push edx
lea eax, [esp + 0x318]
push eax
lea ecx, [esp + 0x370]
push ecx
lea edx, [esp + 0x2e8]
push edx
lea ecx, [esp + 0x3c]
call fcn.0042d490
mov dword [esp + 0x14], eax
cmp dword [esp + 0x2d4], 0x10
mov byte [esp + 0x3a8], 0x10
jb 0x41591b
mov eax, dword [esp + 0x2c0]
push eax
call fcn.004620d3
add esp, 4
cmp dword [esp + 0x14], ebx
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
jne 0x4159d7
xor esi, esi
mov dword [esp + 0x18], ebx
xor edi, edi
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x4159b6
mov edx, ecx
mov ecx, dword [edx + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4159b6
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xd5c]
mov eax, dword [esp + 0x30c]
add ecx, edi
cmp eax, 8
mov eax, dword [esp + 0x2f8]
jae 0x415991
lea eax, [esp + 0x2f8]
mov edx, dword [esp + 0x308]
push edx
push eax
mov eax, dword [ecx + 0x14]
push eax
push ebx
call fcn.0040e320
test eax, eax
jne 0x4159b0
mov dword [esp + 0x18], 1
inc esi
add edi, 0x1c
jmp 0x415942
cmp dword [esp + 0x18], ebx
jne 0x4159cd
lea ecx, [esp + 0x2f4]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.004037f0
mov byte [esp + 0x10], 1
jmp 0x415bdf
cmp dword [edi + 0x168], ebx
jne 0x4159e5
dec dword [edi + 0xda4]
call fcn.004621d7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
cmp dword [edi + 0xda4], ebx
jg 0x415a78
lea ecx, [esp + 0x84]
call fcn.00401860
mov eax, dword [edi + 0x15c]
lea ecx, [esp + 0x7c]
mov dword [edi + 0xda4], eax
call fcn.00401860
push 0x151
lea ecx, [esp + 0x80]
mov byte [esp + 0x3ac], 0x22
call fcn.00402110
push 0x146
lea ecx, [esp + 0x1c]
call fcn.00402110
mov esi, dword [esp + 0x18]
push ebx
push 0x10
push esi
call fcn.0046f4c9
push 1
lea ecx, [esp + 0xd8]
call fcn.00428ce0
lea ecx, [esp + 0x7c]
call fcn.00401880
lea ecx, [esp + 0x84]
jmp 0x415bb8
lea ecx, [esp + 0x38]
call fcn.00401860
lea ecx, [esp + 0x34]
call fcn.00401860
push 0x147
lea ecx, [esp + 0x38]
mov byte [esp + 0x3ac], 0x24
call fcn.00402110
cmp dword [edi + 0x168], ebx
lea ecx, [esp + 0x38]
je 0x415ab3
push 0x119
jmp 0x415ab8
push 0x11a
call fcn.00402110
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffc
push eax
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x24]
call fcn.00405220
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x3ac], 0x25
call fcn.00403cc0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x3a8], 0x24
call fcn.00401880
mov eax, dword [esp + 0x1c]
push eax
push 0x489a94
lea ecx, [esp + 0x40]
call fcn.00408010
push ebx
push ebx
push ecx
lea edx, [esp + 0x40]
mov ecx, esp
mov dword [esp + 0xc0], esp
push edx
call fcn.00401bb0
push ecx
lea eax, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0xc0], esp
push eax
mov byte [esp + 0x3bc], 0x26
call fcn.00401bb0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x5c], esp
push edx
mov byte [esp + 0x3c0], 0x27
call fcn.00401bb0
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x3bc], 0x24
call fcn.0042a590
lea ecx, [esp + 0x19c]
mov byte [esp + 0x3a8], 0x28
call fcn.0045d4bd
cmp eax, 6
jne 0x415b92
inc dword [esp + 0x60]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], bl
jmp 0x415b97
mov byte [esp + 0x10], 1
lea ecx, [esp + 0x19c]
mov byte [esp + 0x3a8], 0x24
call fcn.0042a310
lea ecx, [esp + 0x34]
call fcn.00401880
lea ecx, [esp + 0x38]
call fcn.00401880
lea eax, [esi - 0x10]
mov byte [esp + 0x3a8], 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415bdf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x415bf7
mov ecx, esi
call fcn.004313a0
push esi
call fcn.004620d3
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x24], ebx
je 0x415c0f
mov ecx, ebp
call fcn.004313a0
push ebp
call fcn.004620d3
add esp, 4
mov dword [esp + 0x18], ebx
cmp byte [esp + 0x10], bl
je 0x415402
jmp 0x415d50
mov esi, dword [esp + 0x40]
mov ecx, esi
call fcn.0042afa0
cmp esi, ebx
je 0x415c41
mov ecx, esi
call fcn.0042acf0
push esi
call fcn.004620d3
add esp, 4
mov ecx, dword [esp + 0x4c]
push 0x148
call fcn.0040e720
lea ecx, [esp + 0x64]
mov byte [esp + 0x3a8], 0xf
call fcn.0043a760
lea ecx, [esp + 0x68]
mov byte [esp + 0x3a8], 0xe
call fcn.004386a0
lea ecx, [esp + 0x380]
call fcn.00401c00
lea ecx, [esp + 0x3c]
call fcn.00401880
lea ecx, [esp + 0xd4]
mov byte [esp + 0x3a8], 9
call fcn.00428eb0
lea ecx, [esp + 0x6c]
call fcn.0040a730
lea ecx, [esp + 0x2f4]
call fcn.00401a60
lea ecx, [esp + 0x50]
call fcn.0040ca20
lea ecx, [esp + 0x310]
call fcn.00401c00
lea ecx, [esp + 0x32c]
call fcn.00401c00
lea ecx, [esp + 0x364]
call fcn.00401c00
lea ecx, [esp + 0x348]
call fcn.00401c00
lea ecx, [esp + 0x2d8]
call fcn.00401c00
lea ecx, [esp + 0x1c]
call fcn.00401880
lea ecx, [esp + 0x28]
mov dword [esp + 0x3a8], 0xffffffff
call fcn.0042c3d0
mov eax, edi
jmp 0x4160c8
cmp byte [esp + 0x12], bl
je 0x415d50
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x415d36
mov ecx, esi
call fcn.004313a0
push esi
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x415d50
mov esi, eax
mov ecx, esi
call fcn.004313a0
push esi
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x64]
mov dword [eax + 0xdd8], ebx
mov byte [esp + 0x3a8], 0xf
call fcn.0043a760
jmp 0x415db7
mov ecx, dword [esp + 0x4c]
push 0xf6
mov dword [ecx + 0xdd8], 1
call fcn.0040e720
lea ecx, [esp + 0x380]
push ecx
lea edx, [esp + 0x330]
push edx
lea eax, [esp + 0x318]
push eax
lea ecx, [esp + 0x2e4]
push ecx
lea ecx, [esp + 0x38]
call fcn.0042d5f0
mov dword [esp + 0x14], eax
mov byte [esp + 0x23], 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x3a8], 0xe
call fcn.004386a0
cmp dword [esp + 0x14], ebx
jne 0x415e59
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x64], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x350]
mov ebp, 0xf
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.0040c120
mov esi, dword [esp + 0x5c]
mov ecx, esi
call fcn.0042b580
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x64], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x334]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040c120
mov ecx, esi
call fcn.0042b650
push ebx
mov ecx, esi
call fcn.0042abc0
jmp 0x415ea1
push 0x11b
call fcn.00462133
cmp eax, ebx
je 0x415dd2
push 0x11b
push eax
lea ecx, [esp + 0x44]
call fcn.0042b1e0
jmp 0x415dd2
mov esi, dword [esp + 0x40]
mov ecx, esi
call fcn.0042afa0
cmp esi, ebx
je 0x415e78
mov ecx, esi
call fcn.0042acf0
push esi
call fcn.004620d3
add esp, 4
cmp byte [esp + 0x13], bl
jne 0x415ea1
cmp byte [esp + 0x23], bl
jne 0x415ea1
push 0x11c
call fcn.00462133
cmp eax, ebx
je 0x415ea1
push 0x11c
push eax
lea ecx, [esp + 0x44]
call fcn.0042b1e0
mov eax, dword [esp + 0x398]
mov edi, 0x10
cmp eax, edi
jb 0x415ec1
mov ecx, dword [esp + 0x384]
push ecx
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x3c]
mov esi, 0xf
add eax, 0xfffffff0
mov dword [esp + 0x398], esi
mov dword [esp + 0x394], ebx
mov byte [esp + 0x384], bl
mov byte [esp + 0x3a8], 0xa
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415f01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0xd4]
mov byte [esp + 0x3a8], 9
call fcn.00428eb0
mov ebp, dword [esp + 0x70]
cmp ebp, ebx
je 0x415f3b
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
push eax
lea ecx, [esp + 0x70]
push ecx
push edx
push ebp
call fcn.00402730
push ebp
call fcn.004620d3
add esp, 0x14
cmp dword [esp + 0x30c], 8
jb 0x415f55
mov eax, dword [esp + 0x2f8]
push eax
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x54]
cmp eax, ebx
mov dword [esp + 0x30c], 7
mov dword [esp + 0x308], ebx
mov word [esp + 0x2f8], bx
je 0x415f99
mov ecx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x54]
push edx
push ecx
push eax
call fcn.0040c2f0
mov edx, dword [esp + 0x64]
push edx
call fcn.004620d3
add esp, 0x14
cmp dword [esp + 0x328], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jb 0x415fbe
mov eax, dword [esp + 0x314]
push eax
call fcn.004620d3
add esp, 4
cmp dword [esp + 0x344], edi
mov dword [esp + 0x328], esi
mov dword [esp + 0x324], ebx
mov byte [esp + 0x314], bl
jb 0x415fec
mov ecx, dword [esp + 0x330]
push ecx
call fcn.004620d3
add esp, 4
cmp dword [esp + 0x37c], edi
mov dword [esp + 0x344], esi
mov dword [esp + 0x340], ebx
mov byte [esp + 0x330], bl
jb 0x41601a
mov edx, dword [esp + 0x368]
push edx
call fcn.004620d3
add esp, 4
cmp dword [esp + 0x360], edi
mov dword [esp + 0x37c], esi
mov dword [esp + 0x378], ebx
mov byte [esp + 0x368], bl
jb 0x416048
mov eax, dword [esp + 0x34c]
push eax
call fcn.004620d3
add esp, 4
cmp dword [esp + 0x2f0], edi
mov dword [esp + 0x360], esi
mov dword [esp + 0x35c], ebx
mov byte [esp + 0x34c], bl
jb 0x416076
mov ecx, dword [esp + 0x2dc]
push ecx
call fcn.004620d3
add esp, 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x2f0], esi
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
mov byte [esp + 0x3a8], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4160b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x28]
mov dword [esp + 0x3a8], 0xffffffff
call fcn.0042c3d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3a0]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x394]
pop ebp
pop ebx
xor ecx, esp
call fcn.0044a318
add esp, 0x39c
ret 4