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

Disassembly:
push 0xffffffffffffffff
push 0x59dcbc
mov eax, dword fs:[0]
push eax
sub esp, 0x2a0
mov eax, dword [0x5f4964]
xor eax, esp
mov dword [esp + 0x29c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f4964]
xor eax, esp
push eax
lea eax, [esp + 0x2b4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2cc]
mov esi, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x10]
mov al, byte [eax + 0x47]
xor ebx, ebx
mov dword [esp + 0x24], ebp
cmp al, bl
jne 0x52d003
mov edi, dword [esp + 0x2c4]
push 0x20
lea ecx, [edi + edi]
push ecx
lea ecx, [esp + 0x218]
mov dword [esp + 0x230], 0xf
mov dword [esp + 0x22c], ebx
mov byte [esp + 0x21c], bl
call fcn.0040b470
push ebp
lea edx, [esp + 0x214]
push edx
inc edi
push esi
lea ecx, [esp + 0x238]
mov dword [esp + 0x2c8], ebx
mov dword [esp + 0x2d0], edi
call fcn.00528cb0
mov ebp, dword [esp + 0x18]
push ebp
lea ecx, [esp + 0x230]
mov byte [esp + 0x2c0], 1
call fcn.0051de50
or edi, 0xffffffff
lea ecx, [ebx + 0x10]
cmp byte [esp + 0x2d0], bl
je 0x52c1a1
mov eax, dword [esi]
cmp dword [eax + 0x18], ecx
jb 0x52c0a2
mov edx, dword [eax + 4]
jmp 0x52c0a5
lea edx, [eax + 4]
mov dword [esp + 0x7c], edx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x80], eax
cmp dword [esp + 0x228], ecx
jb 0x52c0c9
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x54], ecx
jmp 0x52c0d4
lea edx, [esp + 0x214]
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x224]
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x170]
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0xdc]
push edx
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x1ac]
push ecx
lea edx, [esp + 0x138]
push edx
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x78]
push ecx
push str._0message__1
push ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
call fcn.005623a0
add esp, 0x30
push 3
push 0x5bcefc
mov ecx, ebp
call fcn.0040cab0
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x2c4]
push ebp
push eax
push edx
call fcn.00525110
add esp, 0xc
lea eax, [esp + 0x23]
push eax
lea ecx, [esp + 0x27]
push ecx
lea ecx, [esp + 0x1d0]
call fcn.00515980
mov eax, dword [esi + 0x18]
xor ebp, ebp
cmp eax, ebx
mov byte [esp + 0x2bc], 2
jle 0x52c22d
xor eax, eax
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x1c]
add eax, edx
cmp dword [eax + 0x20], 0xa
jne 0x52c21c
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c0]
push edx
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x24], eax
call fcn.00519210
mov eax, dword [esp + 0x14]
inc ebp
add eax, 0x58
cmp ebp, dword [esi + 0x18]
mov dword [esp + 0x14], eax
jl 0x52c1f1
cmp dword [esi + 0x40], ebx
mov dword [esp + 0x14], ebx
jle 0x52c27c
xor ebp, ebp
jmp 0x52c240
mov eax, dword [esi + 0x44]
add eax, ebp
cmp dword [eax + 0x20], 0xa
jne 0x52c26b
mov ecx, dword [eax + 0x3c]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c0]
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x1d0]
call fcn.00519210
mov eax, dword [esp + 0x14]
inc eax
add ebp, 0x58
cmp eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
jl 0x52c240
cmp dword [esi + 0x28], ebx
mov dword [esp + 0x1c], ebx
jle 0x52c343
mov dword [esp + 0x14], ebx
lea ecx, [ecx]
mov ecx, dword [esi + 0x2c]
add ecx, dword [esp + 0x14]
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x80]
mov dword [esp + 0x54], ecx
push eax
lea ecx, [esp + 0x1d0]
call fcn.005138a0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
xor ebp, ebp
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
nop
cmp eax, ebx
je 0x52c2dd
cmp eax, dword [esp + 0x84]
je 0x52c2e2
call fcn.0056adc1
mov edx, dword [esp + 0x1c0]
cmp edx, dword [esp + 0x88]
je 0x52c308
lea ecx, [esp + 0x1bc]
inc ebp
call fcn.00511910
mov eax, dword [esp + 0x1bc]
jmp 0x52c2d0
cmp ebp, ebx
jne 0x52c32c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c4]
push 1
push eax
push ecx
mov ecx, dword [esi + 0x2c]
add ecx, dword [esp + 0x20]
push edx
call fcn.0052bfb0
mov eax, dword [esp + 0x1c]
add dword [esp + 0x14], 0x58
inc eax
cmp eax, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
jl 0x52c290
xor ebp, ebp
cmp dword [esi + 0x30], ebx
jle 0x52c379
mov dword [esp + 0x14], ebx
mov edi, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c4]
push eax
push ecx
mov ecx, dword [esi + 0x34]
add ecx, dword [esp + 0x1c]
push edx
call fcn.0052ba40
add dword [esp + 0x14], 0x20
inc ebp
cmp ebp, dword [esi + 0x30]
jl 0x52c350
cmp dword [esi + 0x18], ebx
mov dword [esp + 0x1c], ebx
jle 0x52c3e5
xor ebp, ebp
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + ebp + 0x34]
add eax, ebp
cmp ecx, ebx
jne 0x52c3ad
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x2c8]
push edx
push ebx
push ecx
mov ecx, eax
call fcn.0052d030
jmp 0x52c3d4
mov edx, dword [esi + 0x1c]
lea eax, [edx + ebp]
mov edx, dword [eax + 0x34]
mov edx, dword [edx + 0x14]
cmp dword [edx], eax
jne 0x52c3d4
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x2c8]
push edx
push eax
call fcn.00529200
mov eax, dword [esp + 0x1c]
inc eax
add ebp, 0x58
cmp eax, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
jl 0x52c384
xor ebp, ebp
cmp dword [esi + 0x38], ebx
jle 0x52c545
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + ebp*8 + 4]
lea edx, [esp + 0x5c]
dec eax
push edx
push eax
call fcn.0053bea0
add esp, 8
mov dword [esp + 0x54], eax
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x52c410
sub eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + ebp*8]
lea ecx, [esp + 0x84]
push ecx
push eax
call fcn.0053bea0
add esp, 8
mov dword [esp + 0x7c], eax
lea edx, [eax + 1]
jmp 0x52c440
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x52c440
sub eax, edx
cmp dword [esp + 0x228], 0x10
mov dword [esp + 0x80], eax
jb 0x52c467
mov edx, dword [esp + 0x214]
mov dword [esp + 0x28], edx
jmp 0x52c472
lea eax, [esp + 0x214]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x224]
lea edx, [esp + 0x11c]
push edx
mov dword [esp + 0x30], ecx
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x14c]
push ecx
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0x184]
push edx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x4c]
push edx
push str._0__extensions__1_to__2__n
push eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
call fcn.005623a0
inc ebp
add esp, 0x30
cmp ebp, dword [esi + 0x38]
jl 0x52c3f0
mov eax, dword [esi + 0x40]
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
jle 0x52c7e8
mov ecx, dword [esp + 0x2c4]
inc ecx
mov dword [esp + 0x50], ecx
xor ebp, ebp
jmp 0x52c570
mov edx, dword [esi + 0x44]
mov eax, dword [esp + 0x1c]
mov ecx, 0x10
cmp dword [edx + ebp + 0x30], eax
je 0x52c7b9
cmp dword [esp + 0x14], ebx
jle 0x52c69b
cmp dword [esp + 0x228], ecx
jb 0x52c5a6
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x28], ecx
jmp 0x52c5b1
lea edx, [esp + 0x214]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x224]
lea ecx, [esp + 0x11c]
push ecx
mov dword [esp + 0x30], eax
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x4c]
push ecx
push str._0___n
push edx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
add esp, 0x30
mov ecx, 0x10
mov eax, dword [esi + 0x44]
mov eax, dword [eax + ebp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
cmp dword [eax + 0x18], ecx
jb 0x52c6b3
mov edx, dword [eax + 4]
jmp 0x52c6b6
lea edx, [eax + 4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x228], ecx
jb 0x52c6d7
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x54], ecx
jmp 0x52c6e2
lea edx, [esp + 0x214]
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x224]
lea ecx, [esp + 0x11c]
push ecx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x98]
push edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x78]
push ecx
push str._0__extend_._1__n
push edx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
add esp, 0x30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
push eax
push ecx
mov ecx, dword [esi + 0x44]
push ebx
push edx
add ecx, ebp
call fcn.0052d030
mov eax, dword [esp + 0x14]
inc eax
add ebp, 0x58
cmp eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
jl 0x52c570
cmp dword [esi + 0x40], ebx
jle 0x52c8f8
cmp dword [esp + 0x228], 0x10
jb 0x52c808
mov eax, dword [esp + 0x214]
mov dword [esp + 0x28], eax
jmp 0x52c813
lea ecx, [esp + 0x214]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x224]
lea eax, [esp + 0x11c]
push eax
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x198]
push ecx
lea edx, [esp + 0x14c]
push edx
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x108]
push edx
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x4c]
push eax
push str._0___n
push ecx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
add esp, 0x30
mov eax, dword [esi + 0x48]
cmp eax, ebx
jle 0x52cc09
cmp dword [esp + 0x228], 0x10
jb 0x52c91a
mov edx, dword [esp + 0x214]
mov dword [esp + 0x28], edx
jmp 0x52c925
lea eax, [esp + 0x214]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x224]
lea edx, [esp + 0x11c]
push edx
mov dword [esp + 0x30], ecx
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x14c]
push ecx
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0x184]
push edx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x4c]
push edx
push str._0__reserved
push eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
add esp, 0x30
cmp dword [esi + 0x48], ebx
mov dword [esp + 0x14], ebx
jle 0x52cbf0
jmp 0x52ca20
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*8 + 4]
lea ebp, [ecx + edx*8]
mov ecx, dword [ebp]
lea edx, [ecx + 1]
cmp eax, edx
jne 0x52cac5
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.0053bea0
add esp, 8
mov dword [esp + 0x28], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x52ca51
sub eax, edx
lea ecx, [esp + 0x11c]
push ecx
mov dword [esp + 0x30], eax
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 0x5c0244
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
push edx
jmp 0x52cb66
lea ecx, [esp + 0x30]
dec eax
push ecx
push eax
call fcn.0053bea0
add esp, 8
mov dword [esp + 0x28], eax
lea edx, [eax + 1]
jmp 0x52cae0
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x52cae0
mov ebp, dword [ebp]
sub eax, edx
lea edx, [esp + 0x5c]
push edx
push ebp
mov dword [esp + 0x34], eax
call fcn.0053bea0
add esp, 8
mov dword [esp + 0x54], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x52cb05
sub eax, edx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0x198]
push ecx
lea edx, [esp + 0x14c]
push edx
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x108]
push edx
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x78]
push eax
push str._0_to__1_
push ecx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
mov eax, dword [esp + 0x44]
inc eax
add esp, 0x30
cmp eax, dword [esi + 0x48]
mov dword [esp + 0x14], eax
jl 0x52ca20
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 2
push 0x5bffc8
push 2
add eax, 0xfffffffe
push eax
call fcn.00417300
cmp dword [esi + 0x50], ebx
jle 0x52ce7f
cmp dword [esp + 0x228], 0x10
jb 0x52cc29
mov edx, dword [esp + 0x214]
mov dword [esp + 0x28], edx
jmp 0x52cc34
lea eax, [esp + 0x214]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x224]
lea edx, [esp + 0x11c]
push edx
mov dword [esp + 0x30], ecx
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x14c]
push ecx
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0x184]
push edx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x4c]
push edx
push str._0__reserved
push eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], edi
call fcn.005623a0
add esp, 0x30
xor ebp, ebp
cmp dword [esi + 0x50], ebx
jle 0x52ce66
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx + ebp*4]
push eax
lea edx, [esp + 0x80]
push edx
call fcn.0053cb50
add esp, 8
cmp dword [eax + 0x18], 0x10
mov byte [esp + 0x2bc], 3
jb 0x52cd52
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], ecx
jmp 0x52cd59
lea edx, [eax + 4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x11c]
push ecx
mov dword [esp + 0x30], eax
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x4c]
push ecx
push str.__0__
push edx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x218], ebx
mov dword [esp + 0x21c], edi
call fcn.005623a0
add esp, 0x30
cmp dword [esp + 0x94], 0x10
mov byte [esp + 0x2bc], 2
jb 0x52ce5c
mov eax, dword [esp + 0x80]
push eax
call fcn.0056a760
add esp, 4
inc ebp
cmp ebp, dword [esi + 0x50]
jl 0x52cd24
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
push 2
push 0x5bffc8
push 2
add eax, 0xfffffffe
push eax
call fcn.00417300
cmp dword [esp + 0x228], 0x10
jb 0x52ce96
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x28], ecx
jmp 0x52cea1
lea edx, [esp + 0x214]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x224]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x1e8]
push ecx
mov dword [esp + 0x30], eax
lea edx, [esp + 0x120]
push edx
lea eax, [esp + 0x19c]
push eax
lea ecx, [esp + 0x150]
push ecx
lea edx, [esp + 0xdc]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x10c]
push ecx
lea edx, [esp + 0x188]
push edx
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x4c]
push ecx
push str._0_n
push esi
mov dword [esp + 0x218], ebx
mov dword [esp + 0x21c], edi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edi
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], edi
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], edi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edi
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
call fcn.005623a0
add esp, 0x30
push esi
lea ecx, [esp + 0x230]
call fcn.0051dfa0
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x2bc], 1
call fcn.0050f9d0
mov esi, 0x10
cmp dword [esp + 0x2ac], esi
jb 0x52cfc5
mov edx, dword [esp + 0x298]
push edx
call fcn.0056a760
add esp, 4
lea ecx, [esp + 0x230]
mov dword [esp + 0x2ac], 0xf
mov dword [esp + 0x2a8], ebx
mov byte [esp + 0x298], bl
call fcn.0051d1f0
cmp dword [esp + 0x228], esi
jb 0x52d003
mov eax, dword [esp + 0x214]
push eax
call fcn.0056a760
add esp, 4
mov ecx, dword [esp + 0x2b4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x29c]
xor ecx, esp
call fcn.0056ab51
add esp, 0x2ac
ret 0x10