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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x174]
cmp eax, dword [ecx + 8]
jbe 0x50f1fa
sub esp, 0x1f4
mov eax, 0
lea edi, [esp + 0x104]
call fcn.0044c958
mov eax, dword [esp + 0x1f8]
test byte [eax], al
lea ecx, [eax + 0xc]
mov dword [esp + 0xfc], ecx
mov dword [esp], ecx
call fcn.0045e960
mov eax, dword [esp + 0xfc]
mov dword [esp + 8], eax
mov dword [esp], 4
lea eax, [0x8bf884]
mov dword [esp + 4], eax
call fcn.00426b30
test eax, eax
jne 0x50edd1
mov eax, dword [esp + 0x1f8]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x50edc4
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xc8], edx
mov ebx, dword [ecx + 0x64]
mov dword [esp], edx
call ebx
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x1f8]
mov dword [ecx + 0x38], 0xffffffff
mov dword [ecx + 0x3c], 0xffffffff
mov dword [ecx + 0x40], 0xffffffff
lea edx, [esp + 8]
mov dword [esp + 0xf8], edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x50de0b
mov eax, dword [esp + 0x80]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1f8]
mov ebp, edi
mov edi, edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xf4], ebp
mov dword [esp + 0x6c], edi
cmp ebx, eax
jge 0x50e6b3
mov dword [esp + 0x80], ebx
mov dword [esp + 0x70], esi
lea eax, [0x866a60]
mov dword [esp], eax
call fcn.00409d90
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xc8]
mov dword [esp], ebp
call edx
mov eax, dword [0xc6f140]
test eax, eax
jne 0x50e677
mov edi, dword [esp + 0xdc]
mov esi, dword [esp + 0xf8]
call fcn.0044cdee
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp edx, 0x10
je 0x50e5b5
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp edx, 0x16
je 0x50e4a1
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 0xe
je 0x50e3df
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 0x14
je 0x50e3b4
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 0xd
je 0x50e375
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x89daa8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xe
call fcn.00498c40
mov eax, dword [esp + 0x14]
test eax, eax
je 0x50dfbc
mov ecx, dword [esp + 0x6c]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0xdc]
mov eax, dword [ebx + 0x14]
mov ebp, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x20]
mov esi, dword [esp + 0x70]
cmp edx, esi
jg 0x50df55
mov edi, dword [esp + 0xf4]
lea ecx, [ecx + ecx*2]
mov dword [edi + ecx*4], ebp
mov dword [edi + ecx*4 + 8], ebx
mov ebx, dword [0xc6f140]
lea ebp, [edi + ecx*4 + 4]
test ebx, ebx
jne 0x50df45
mov dword [edi + ecx*4 + 4], eax
jmp 0x50ddeb
mov ecx, edi
mov edi, ebp
call fcn.0044c860
mov edi, ecx
jmp 0x50ddeb
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xa0], ebp
lea eax, [0x834620]
mov dword [esp], eax
mov ebx, dword [esp + 0xf4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00438c30
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa0]
jmp 0x50df24
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x89a898]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 8
call fcn.00498c40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc0], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x8969ce]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.004c2de0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp ecx, 2
jl 0x50ef8f
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0xc4], edx
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004540d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x50ef17
mov ecx, dword [esp + 0x50]
cmp ecx, 3
jb 0x50ef10
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x54]
add edx, 0xfffffffd
neg edx
sar edx, 0x1f
and edx, 0x18
mov ebx, dword [esp + 0xc4]
add edx, ebx
mov dword [esp + 0xec], edx
add ecx, 0xfffffffd
mov dword [esp + 0x9c], ecx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x50e0b7
inc ebp
mov edx, dword [esp + 0xec]
mov esi, ebx
mov edi, eax
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x74], esi
mov dword [esp + 0xd4], edi
cmp ebp, ecx
jge 0x50e179
lea eax, [edx + ebp*8]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
cmp ebx, 5
jge 0x50e114
mov dword [esp + 0xa8], eax
xor eax, eax
mov byte [esp + 0x3f], al
mov eax, dword [esp + 0xa8]
movzx edx, byte [esp + 0x3f]
test dl, dl
je 0x50e10e
cmp ebx, 5
jb 0x50ef09
lea edx, [ebx - 5]
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 5
add eax, edx
jmp 0x50e0a0
mov ebx, esi
mov eax, edi
jmp 0x50e0a0
mov dword [esp + 0x98], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0xd0], eax
mov dword [esp], eax
lea ecx, [0x897db1]
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.004021f0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xd4]
mov byte [esp + 0x3f], al
mov eax, dword [esp + 0xd0]
jmp 0x50e0eb
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.0050f440
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x10]
cmp edx, 3
jne 0x50e365
movzx edx, word [ecx]
cmp dx, 0x6572
jne 0x50e355
movzx edx, byte [ecx + 2]
cmp dl, 0x71
jne 0x50e345
mov edx, dword [esp + 0x1f8]
mov ebx, dword [edx + 0x2c]
mov ebp, dword [edx + 0x28]
mov esi, dword [edx + 0x24]
mov ecx, edx
lea edx, [ebp + 1]
cmp edx, ebx
jg 0x50e2d3
mov edx, ebp
lea ebx, [ebp + 1]
mov dword [ecx + 0x28], ebx
lea ebx, [esi + ebp*8 + 4]
mov edi, edx
mov edx, dword [esp + 0x74]
mov dword [ebx], edx
lea ebx, [esi + ebp*8]
mov dword [esp + 0xec], ebx
mov ebp, dword [0xc6f140]
mov dword [esp + 0x94], ebp
lea esi, [edi - 0x20]
mov ecx, esi
mov edx, 1
shl edx, cl
neg ecx
mov dword [esp + 0x90], ecx
mov ebx, 1
shr ebx, cl
mov ecx, edi
mov ebp, 1
shl ebp, cl
cmp ecx, 0x20
mov ecx, edx
sbb edx, edx
and ebp, edx
mov edx, dword [esp + 0x90]
cmp edx, 0x20
sbb edx, edx
and ebx, edx
cmp esi, 0x20
sbb edx, edx
and edx, ecx
or edx, ebx
mov ebx, dword [esp + 0x94]
test ebx, ebx
jne 0x50e2b6
mov ecx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xec]
mov dword [ebx], ecx
mov ebx, dword [esp + 0xdc]
mov ebx, dword [ebx + 0x20]
mov esi, dword [esp + 0x1f8]
mov dword [esp], esi
mov edi, dword [esp + 0x58]
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
call fcn.0050f210
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xf4]
jmp 0x50ddeb
mov edi, dword [esp + 0xec]
mov ecx, eax
mov eax, dword [esp + 0xd4]
call fcn.0044c860
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x50e265
mov dword [esp + 0xb0], eax
mov dword [esp + 0x88], ebp
lea eax, [0x80a3e0]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00438c30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x1f8]
mov dword [ebx + 0x2c], edx
mov edx, dword [0xc6f140]
test edx, edx
jne 0x50e33b
mov dword [ebx + 0x24], eax
mov edx, dword [esp + 0x88]
mov ebp, ecx
mov esi, eax
mov eax, dword [esp + 0xb0]
mov ecx, ebx
jmp 0x50e1dc
lea edi, [ebx + 0x24]
call fcn.0044c860
jmp 0x50e322
mov ecx, dword [esp + 0xd4]
xor edx, edx
xor ebp, ebp
jmp 0x50e265
mov ecx, dword [esp + 0xd4]
xor edx, edx
xor ebp, ebp
jmp 0x50e265
mov ecx, dword [esp + 0xd4]
xor edx, edx
xor ebp, ebp
jmp 0x50e265
mov dword [esp], edx
lea eax, [0x89d06c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e3a8
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xf4]
jmp 0x50ddeb
mov eax, dword [esp + 0xdc]
jmp 0x50dece
mov dword [esp], edx
lea eax, [0x8a140e]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x50e394
mov eax, dword [esp + 0xdc]
jmp 0x50dec0
mov dword [esp], edx
lea eax, [0x89d808]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e495
mov eax, dword [0x91e254]
lea ecx, [0x80e1a0]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x50e48f
lea edx, [0x928080]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0x10]
cmp edx, esi
jne 0x50f077
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e483
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x1f8]
mov dword [ecx + 0x40], eax
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xf4]
jmp 0x50ddeb
mov ebx, dword [esp + 0xdc]
jmp 0x50f077
xor edx, edx
xor eax, eax
jmp 0x50e42d
mov eax, dword [esp + 0xdc]
jmp 0x50deb2
mov dword [esp], ecx
lea eax, [0x8a2792]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e5a9
lea eax, [0x826840]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], 0
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x50e5a0
lea edx, [0x928080]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0x10]
cmp edx, esi
jne 0x50f0f8
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e594
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x1f8]
mov dword [edx + 0x3c], ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x8a0cf1]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x13
call fcn.00498c40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, 1
jne 0x50e58b
movzx eax, byte [ecx]
cmp al, 0x31
jne 0x50e58b
mov eax, dword [esp + 0x1f8]
mov byte [eax + 0x50], 1
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xf4]
jmp 0x50ddeb
mov eax, dword [esp + 0x1f8]
jmp 0x50e577
mov ebx, dword [esp + 0xdc]
jmp 0x50f0f8
xor ecx, ecx
xor edx, edx
jmp 0x50e4f1
mov eax, dword [esp + 0xdc]
jmp 0x50dea4
mov dword [esp], ecx
lea eax, [0x89ea2f]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004021f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e66b
lea eax, [0x7e9560]
mov dword [esp + 0x104], eax
lea ecx, [0x921158]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x104]
test edx, edx
je 0x50e665
lea ebx, [0x928080]
mov ebp, dword [esp + 0xdc]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
cmp ebx, edi
jne 0x50f179
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.00402ea0
movzx eax, byte [esp + 0xc]
test al, al
je 0x50e659
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x1f8]
mov dword [ecx + 0x38], eax
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xf4]
jmp 0x50ddeb
mov ebp, dword [esp + 0xdc]
jmp 0x50f179
xor edx, edx
xor ebx, ebx
jmp 0x50e603
mov eax, dword [esp + 0xdc]
jmp 0x50de96
lea edi, [esp + 0x1c0]
mov esi, dword [esp + 0xf8]
call fcn.0044cdee
lea eax, [0x866a60]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
lea ecx, [esp + 0x1c0]
mov dword [esp + 8], ecx
call fcn.0040f790
jmp 0x50de81
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov ecx, dword [esp + 0xc8]
mov dword [esp + 4], ecx
call fcn.00499d20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004a4180
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004a07f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x50ed2c
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0xf0], ecx
xor edx, edx
jmp 0x50e797
inc ebx
cmp ebx, edx
jge 0x50eab2
lea ebp, [eax + ebx*8]
mov esi, dword [ebp + 4]
mov dword [esp + 0x64], esi
mov ebp, dword [ebp]
mov dword [esp + 0xcc], ebp
cmp esi, 5
jge 0x50ea63
xor edi, edi
xchg edi, eax
test al, al
xchg edi, eax
je 0x50e71d
cmp esi, 5
jge 0x50ea2d
xor eax, eax
test al, al
je 0x50ea24
cmp esi, 5
jb 0x50ee83
lea eax, [esi - 5]
mov edx, eax
neg eax
sar eax, 0x1f
and eax, 5
add eax, ebp
mov ebx, dword [esp + 0x6c]
test ebx, ebx
jg 0x50e90e
mov ebp, dword [esp + 0x9c]
lea edx, [ebp + 1]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xf0]
cmp edx, eax
jge 0x50eb00
mov dword [esp + 0x9c], edx
lea ebx, [ecx + edx*8]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebp
mov ebx, dword [esp + 0x114]
test ebx, ebx
je 0x50eaf7
lea ebp, [0x928080]
mov dword [esp + 0x44], ebp
mov dword [esp + 0xb8], ebx
mov eax, dword [ebp + 0x28]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x40], ecx
lea edx, [0x866a60]
mov dword [esp], edx
call fcn.00409d90
mov eax, dword [esp + 4]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 4], 0
mov ebx, dword [esp + 0xb4]
mov dword [esp], ebx
call edx
mov eax, dword [0xc6f140]
test eax, eax
jne 0x50eabb
mov edi, dword [esp + 0x100]
mov esi, dword [esp + 0xf8]
call fcn.0044cdee
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.0050f440
mov eax, dword [esp + 4]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x100]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [0x89a898]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 8
call fcn.00498c40
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x8969ce]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004c2de0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, 1
jbe 0x50ef02
mov dword [esp + 0x4c], eax
mov dword [esp + 0xbc], ecx
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004540d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x50ee8a
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x4c]
xor ebx, ebx
jmp 0x50e71e
mov dword [esp + 0xd8], eax
mov dword [esp + 0x78], edx
mov ebp, dword [esp + 0xf4]
xor esi, esi
jmp 0x50e930
mov edx, dword [esp + 0xe8]
lea ebp, [edx + 0xc]
mov esi, eax
mov dword [esp + 0xe8], ebp
mov dword [esp + 0x98], esi
mov eax, dword [ebp]
mov dword [esp + 0xa4], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x8c], ecx
mov edx, dword [ebp + 4]
mov dword [esp + 0xe4], edx
mov ebx, dword [esp + 0x44]
mov edi, dword [ebx + 0x40]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0xb8]
mov dword [esp], ecx
call edi
movzx eax, byte [esp + 0xc]
test al, al
jne 0x50e997
mov eax, dword [esp + 0x98]
inc eax
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jl 0x50e924
mov ebx, ecx
jmp 0x50e782
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x10], edx
call fcn.005172c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1f8]
mov dword [esp], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x1c], ebx
call fcn.0050f210
jmp 0x50e980
mov eax, ebp
mov edx, esi
jmp 0x50e776
mov dword [esp], ebp
lea eax, [0x897db1]
mov dword [esp + 4], eax
mov dword [esp + 8], 5
call fcn.004021f0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x64]
jmp 0x50e756
mov dword [esp + 0x98], ebx
mov dword [esp], ebp
lea eax, [0x897db1]
mov dword [esp + 4], eax
mov dword [esp + 8], 5
call fcn.004021f0
movzx edi, byte [esp + 0xc]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x64]
jmp 0x50e745
xor eax, eax
xor edx, edx
jmp 0x50e776
lea edi, [esp + 0x18c]
mov esi, dword [esp + 0xf8]
call fcn.0044cdee
lea eax, [0x866a60]
mov dword [esp], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
lea ecx, [esp + 0x18c]
mov dword [esp + 8], ecx
call fcn.0040f790
jmp 0x50e84c
xor ebp, ebp
xor ebx, ebx
jmp 0x50e7d1
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov ecx, dword [esp + 0xc8]
mov dword [esp + 4], ecx
call fcn.00499d20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004a4180
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [0x8a0539]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x13
call fcn.004a1470
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x50ec0c
mov ebx, dword [esp + 0x1f8]
mov ebp, dword [ebx + 0x3c]
cmp ebp, 0xffffffff
je 0x50ed1b
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.0049df80
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jbe 0x50edf6
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004a07f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
lea edx, [0x7e69e0]
cmp ecx, edx
jne 0x50edde
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ebx, dword [esp + 0x1f8]
mov dword [ebx + 0x48], edx
mov dword [ebx + 0x4c], ecx
mov ecx, dword [0xc6f140]
test ecx, ecx
jne 0x50ed0e
mov dword [ebx + 0x44], eax
lea eax, [0x822820]
mov dword [esp], eax
call fcn.00409d90
mov eax, dword [esp + 4]
lea ecx, [0x526970]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], ecx
mov ecx, dword [0xc6f140]
test ecx, ecx
jne 0x50ecf6
mov ecx, dword [esp + 0xc8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1f8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call fcn.0050f210
mov eax, dword [esp + 0x1f8]
mov ecx, dword [eax + 0x28]
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb ebx, ebx
and edx, ebx
mov ebx, edx
add edx, 0xffffffff
mov dword [eax + 0x30], edx
add ecx, 0xffffffe0
mov edx, 1
shl edx, cl
mov ebp, ecx
neg ecx
mov esi, 1
shr esi, cl
cmp ebp, 0x20
sbb ebp, ebp
and ebp, edx
cmp ecx, 0x20
sbb ecx, ecx
and esi, ecx
or ebp, esi
add ebx, 0xffffffff
adc ebp, 0xffffffff
mov dword [eax + 0x34], ebp
add eax, 8
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004012f0
nop
call fcn.004272f0
add esp, 0x1f4
ret
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xc8]
call fcn.0044c860
mov eax, ecx
jmp 0x50ec45
lea edi, [ebx + 0x44]
call fcn.0044c860
jmp 0x50ec0c
mov ebp, dword [ebx + 0x40]
cmp ebp, 0xffffffff
jne 0x50eb80
jmp 0x50edfd
mov dword [esp + 0xa4], eax
mov dword [esp + 0xf0], ecx
lea edx, [0x820420]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00407cb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x50ed76
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
jmp 0x50e70e
lea eax, [0x820480]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], eax
call fcn.00407cb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x50e70a
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
jmp 0x50e70e
nop
call fcn.004272f0
add esp, 0x1f4
ret
nop
call fcn.004272f0
add esp, 0x1f4
ret
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x809c60]
mov dword [esp + 8], eax
call fcn.004071c0
ud2
call fcn.00426770
ud2
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x8b4375]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x36
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x144]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
call fcn.00426870
ud2
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp], 0
lea eax, [0x8ab322]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x23
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x14c]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
call fcn.00426770
ud2
call fcn.00426870
ud2
call fcn.00426870
ud2
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp], 0
lea eax, [0x8ab322]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x23
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x154]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0xf4], ecx
lea edi, [esp + 0x15c]
lea esi, [0x927580]
call fcn.0044cdf8
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ecx
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x188], eax
mov dword [esp], 0
lea eax, [esp + 0x15c]
mov dword [esp + 4], eax
mov dword [esp + 8], 6
mov dword [esp + 0xc], 6
call fcn.0043bbc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x124]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0x60]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x8aaf71]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x23
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x12c]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0x60]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x8af8c9]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2b
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bdd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], eax
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x134]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x60]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x8ac2f8]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x25
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
lea eax, [0x80a3e0]
mov dword [esp], eax
lea eax, [esp + 0x13c]
mov dword [esp + 4], eax
call fcn.00407520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427650
ud2
call fcn.0044b100
jmp fcn.0050dd10