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

Disassembly:
sub esp, 0x5c
mov edx, dword [esp + 0x70]
xor eax, eax
push ebx
mov ebx, dword [esp + 0x64]
push esi
push edi
mov byte [esp + 0xe], 0
mov edi, dword [ebx + 8]
mov byte [esp + 0xf], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x58], ecx
cmp dword [edi + 0x70], ecx
jg 0x4f3b34
push eax
push eax
push eax
push 0xf
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x90]
add esp, 0x14
mov dword [esp + 0x58], eax
jmp 0x4f3b67
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x70]
xorps xmm0, xmm0
push ebp
movlpd qword [esp + 0x64], xmm0
mov dword [esp + 0x1c], 0
mov eax, dword [esi]
mov esi, dword [esi + 0x18]
mov ecx, dword [eax + 4]
movzx eax, byte [edx + 0x3c]
mov edx, dword [edx + 0x50]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x68]
lea eax, [eax + eax*8]
mov dword [esp + 0x48], ecx
lea ebp, [ecx + eax*8]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], ebp
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov dword [esp + 0x50], eax
cmp esi, eax
jae 0x4f3e8f
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], eax
test byte [esi + 0xa], 2
mov ebp, dword [esi]
jne 0x4f3d3e
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + 0x3c]
push eax
push ecx
push ebp
call fcn.005522a0
add esp, 0xc
test eax, eax
je 0x4f3d3a
test ebp, ebp
je 0x4f3c15
push 0
push 0
push ebp
push dword [ebx]
call fcn.004fa110
add esp, 0x10
mov dword [esp + 0x2c], eax
mov ebp, eax
jmp 0x4f3c1b
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx]
mov dword [esp + 0x58], ecx
test edx, edx
je 0x4f3d36
test ebp, ebp
je 0x4f3d3a
mov eax, dword [edx + 4]
or eax, dword [ebp + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x4f3c92
cmp byte [ebx + 0xdc], 2
jae 0x4f3c92
push edx
push ebx
call fcn.00551430
push ebp
push ebx
call fcn.00551430
push 0
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x61b3b4
push eax
push 0x9b
push dword [esp + 0x74]
mov dword [esp + 0x88], 1
call fcn.0054db30
add esp, 0x20
mov dword [esp + 0x28], eax
jmp 0x4f3d3a
push 0
push 0x34
push ecx
call fcn.0054aba0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4f3d1b
push 0x34
push 0
push ebp
call fcn.0042d620
or eax, 0xffffffff
mov byte [ebp], 0x2c
mov word [ebp + 0x22], ax
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x10], eax
mov edx, dword [eax + 4]
and edx, 0x400208
or edx, dword [ebp + 4]
mov dword [ebp + 4], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x28]
inc ecx
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x400208
or eax, edx
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x18]
cmp eax, ecx
jl 0x4f3cfd
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [ebp + 0x18], eax
jle 0x4f3d36
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.0054d2c0
add esp, 0xc
jmp 0x4f3d36
mov eax, dword [esp + 0x28]
push eax
push dword [ebx]
call fcn.005514d0
mov eax, dword [esp + 0x34]
push eax
push dword [ebx]
call fcn.005514d0
add esp, 0x10
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov eax, dword [esi + 0x14]
cmp eax, dword [ebp + 0x34]
jne 0x4f3e78
test byte [esi + 0xc], 0x82
je 0x4f3e78
test byte [ebp + 0x2c], 0x58
je 0x4f3d73
lea eax, [ebp + 8]
push eax
push esi
call fcn.004f3ab0
add esp, 8
test eax, eax
je 0x4f3e74
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4f3e74
mov ecx, dword [esi + 0x18]
test ecx, ecx
js 0x4f3e74
mov eax, dword [ebp + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x4c], al
push dword [esp + 0x4c]
push dword [esi]
call fcn.005621b0
add esp, 8
test eax, eax
je 0x4f3e74
mov edx, dword [esi + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x4f3dce
mov dword [esp + 0x2c], closesocket
jmp 0x4f3de7
mov eax, edx
xor ecx, ecx
bts ebp, eax
cmp eax, 0x20
cmovae ecx, ebp
xor ebp, ecx
cmp eax, 0x40
cmovae ecx, ebp
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0x12], 0
jne 0x4f3e13
mov ecx, dword [esp + 0x40]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.004d4a30
add esp, 0x10
mov byte [esp + 0x12], 1
mov eax, dword [esp + 0x2c]
mov ecx, ebp
mov edx, dword [esp + 0x18]
and eax, edx
and ecx, dword [esp + 0x30]
or ecx, eax
jne 0x4f3e6e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
inc eax
push eax
push ecx
push dword [ebx]
mov dword [esp + 0x64], eax
call fcn.005a9440
add esp, 0xc
test eax, eax
jne 0x4f486c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
or dword [esp + 0x30], ebp
mov eax, dword [eax + 0x38]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
mov ebp, dword [esp + 0x14]
jmp 0x4f3e78
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
add esi, 0x30
cmp esi, dword [esp + 0x50]
jb 0x4f3bd0
mov esi, dword [esp + 0x30]
jmp 0x4f3e93
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
movzx eax, ax
mov word [ecx + 0x30], ax
mov word [ecx + 0x18], ax
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x2c], 0x4241
cmp byte [eax + 0x2b], 2
jne 0x4f3ec9
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
jmp 0x4f3ee1
not edx
not esi
and esi, dword [ebp + 0x40]
or edx, 0x80000000
and edx, dword [ebp + 0x44]
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], edx
movzx eax, word [eax + 0x22]
mov edx, 0x3f
movsx ecx, ax
xor esi, esi
mov dword [esp + 0x4c], ecx
cmp dx, ax
jge 0x4f3f00
mov ebp, edx
mov dword [esp + 0x2c], ebp
jmp 0x4f3f0e
mov ebp, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x2c], ebp
test ebp, ebp
jle 0x4f3f4a
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, edi
or edx, ecx
je 0x4f3f39
inc dword [esp + 0x1c]
inc esi
cmp esi, ebp
jl 0x4f3f16
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0
jg 0x4f3f6b
jl 0x4f3f5c
cmp dword [eax + 0x40], 0
jae 0x4f3f6b
mov eax, dword [esp + 0x1c]
add eax, 0xffffffc1
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x4f3f6f
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx]
movzx eax, ax
inc eax
movzx eax, ax
movsx esi, ax
mov dword [esp + 0x4c], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ebp, [esi*4 + 7]
and eax, 0xfffffff8
and ebp, 0xfffffff8
add eax, 0x48
add eax, ebp
mov dword [esp + 0x58], eax
cdq
push edx
push eax
test ecx, ecx
je 0x4f3fb0
push ecx
call fcn.0054aba0
add esp, 0xc
jmp 0x4f3fb8
call fcn.005660f0
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x4f486c
push dword [esp + 0x58]
push 0
push eax
call fcn.0042d620
mov ecx, dword [esp + 0x30]
add esp, 0xc
lea edx, [ecx + 4]
xorps xmm0, xmm0
mov dword [esp + 0x20], edx
movlpd qword [esp + 0x64], xmm0
lea eax, [ecx + 0x48]
mov dword [esp + 0x58], edx
mov dword [ecx + 0x20], eax
add eax, ebp
mov dword [ecx + 8], eax
xor ebp, ebp
lea eax, [eax + esi*2]
add eax, 2
mov dword [edx], eax
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov word [ecx + 0x34], ax
movzx eax, si
mov word [ecx + 0x32], ax
mov eax, dword [esp + 0x34]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x40]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [ecx], str.auto_index
mov esi, dword [eax + 0x18]
cmp esi, dword [esp + 0x50]
jae 0x4f41dd
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x44], eax
nop word [eax + eax]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], edi
cmp eax, dword [ecx + 0x34]
jne 0x4f41bd
test byte [esi + 0xc], 0x82
je 0x4f41bd
test byte [ecx + 0x2c], 0x58
je 0x4f409d
lea eax, [ecx + 8]
push eax
push esi
call fcn.004f3ab0
mov edx, dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x4f41b9
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4f41b9
mov ecx, dword [esi + 0x18]
test ecx, ecx
js 0x4f41b9
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x60], al
push dword [esp + 0x60]
push dword [esi]
call fcn.005621b0
add esp, 8
test eax, eax
je 0x4f41b5
mov ecx, dword [esi + 0x18]
xor edx, edx
movzx eax, cx
mov dword [esp + 0x64], eax
cmp ecx, 0x40
jl 0x4f4100
mov eax, closesocket
jmp 0x4f4113
xor eax, eax
bts edx, ecx
cmp ecx, 0x20
cmovae eax, edx
xor edx, eax
cmp ecx, 0x40
cmovae eax, edx
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov ecx, edx
and ecx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
and eax, dword [esp + 0x48]
or ecx, eax
jne 0x4f41b5
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x58]
mov edi, dword [esi]
mov ecx, dword [esp + 0x64]
or dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
push edi
push ebx
mov eax, dword [eax + 4]
mov word [eax + ebp*2], cx
call fcn.00551170
add esp, 8
test eax, eax
je 0x4f4168
mov ecx, dword [eax]
jmp 0x4f416d
mov ecx, str.BINARY
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [eax + ebp*4], ecx
inc ebp
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x4c]
mov edx, ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
test eax, eax
je 0x4f41b9
push eax
mov dword [esp + 0x24], ecx
call fcn.0054da60
mov ecx, dword [esp + 0x18]
add esp, 4
cmp al, 0x42
je 0x4f42cf
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x13], 1
mov dword [esp + 0x20], edx
jmp 0x4f41bd
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esi, 0x30
cmp esi, dword [esp + 0x50]
jb 0x4f4060
mov eax, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x58], eax
xor esi, esi
cmp dword [esp + 0x2c], esi
jle 0x4f423b
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x30]
and ecx, dword [esp + 0x18]
or edx, ecx
je 0x4f4228
mov eax, dword [ebx]
mov word [eax + ebp*2], si
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [eax + ebp*4], str.BINARY
inc ebp
mov edx, dword [esp + 0x20]
inc esi
mov ebx, edx
cmp esi, edi
jl 0x4f41f0
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0
jg 0x4f4280
jl 0x4f424d
cmp dword [eax + 0x40], 0
jae 0x4f4280
mov esi, dword [esp + 0x40]
mov eax, 0x3f
cmp ax, word [esi + 0x22]
jge 0x4f4280
mov edi, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [edx]
mov word [eax + ebp*2], cx
inc ecx
mov eax, dword [edi + 0x20]
mov dword [eax + ebp*4], str.BINARY
inc ebp
movsx eax, word [esi + 0x22]
cmp ecx, eax
jl 0x4f4262
mov edi, dword [esp + 0x38]
mov eax, dword [edx]
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
inc edx
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
mov eax, dword [eax + 0x20]
mov dword [eax + ebp*4], str.BINARY
mov eax, dword [ebx + 0x28]
mov dword [ecx + 8], eax
inc dword [ebx + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x64], eax
cmp dword [edi + 0x70], ecx
jg 0x4f42d8
push 0
push edx
push eax
push 0x74
push edi
call fcn.0051dc60
add esp, 0x14
lea esi, [edi + 0x68]
jmp 0x4f430d
mov edx, dword [esp + 0x20]
jmp 0x4f41bd
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea esi, [edi + 0x68]
mov eax, dword [esi]
lea ecx, [ecx + ecx*4]
mov edi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x24]
mov eax, dword [ebx + 8]
push ebx
mov dword [esp + 0x60], eax
call fcn.00564a60
mov edx, eax
add esp, 8
test edx, edx
je 0x4f4368
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
je 0x4f4352
cmp dword [ecx + 0x210], 0
jne 0x4f434d
add dword [edx], 0xffffffff
jne 0x4f434d
push edx
push dword [edx + 0xc]
call fcn.0054ad00
add esp, 8
lea esi, [edi + 0x68]
jmp 0x4f4368
mov eax, dword [eax + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebx]
test dword [eax + 0x50], 0x80000
jne 0x4f43f3
cmp byte [esp + 0x13], 0
je 0x4f43f3
mov eax, dword [esp + 0x74]
push dword [esp + 0x80]
push dword [eax]
push ebx
call fcn.00594310
inc dword [ebx + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x80]
mov edx, dword [ebx + 0x2c]
mov dword [eax + 0x34], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4f43c1
push 0
push edx
push 0x2710
push 0x4d
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x4f43f3
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 4], 0x2710
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
test byte [eax + 0x30], 0x20
je 0x4f44f9
mov ecx, dword [edi + 0x6c]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
cmp dword [edi + 0x70], ecx
jg 0x4f442f
push 0
push 0
push 0
push 0x47
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x54], eax
jmp 0x4f4465
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x74], eax
cmp dword [edi + 0x70], ecx
jg 0x4f4489
push eax
push 0
push edx
push 0xb
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x4f44bb
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x74], edx
cmp dword [edi + 0x70], edx
jg 0x4f44e1
mov edx, dword [esp + 0x50]
push 0
push 0
push edx
push 0xc
push edi
call fcn.0051dc60
add esp, 0x14
mov dword [esp + 0x74], eax
jmp 0x4f455b
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0xc
jmp 0x4f453f
mov eax, dword [esp + 0x80]
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x74], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
cmp dword [edi + 0x70], edx
jg 0x4f4529
push 0
push 0
push eax
push 0x24
push edi
call fcn.0051dc60
add esp, 0x14
mov dword [esp + 0x74], eax
jmp 0x4f455b
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4f4585
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x4c], ecx
call fcn.005517c0
mov eax, dword [esp + 0x44]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4f4594
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4f45a3
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x94]
push dword [eax + 4]
push dword [esp + 0x3c]
push ebx
call fcn.00560200
mov edx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x50], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4f4637
mov ecx, dword [esp + 0x34]
movzx ecx, word [ecx + 0x18]
mov dword [esp + 0x58], ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4f4605
push dword [esp + 0x58]
push eax
push 0
push edx
push 0xb7
push edi
call fcn.004e7220
add esp, 0x18
jmp 0x4f4637
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0xfdb7
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
cmp dword [edi + 0x70], ecx
jg 0x4f4665
mov edx, dword [esp + 0x40]
push 0
push edx
push eax
push 0x8a
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x4f4697
mov edx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
test ecx, ecx
jle 0x4f46b0
mov eax, dword [esi]
lea ecx, [ecx + ecx*4]
mov edx, 0x10
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [edi + 0x6c]
cmp dword [esp + 0x28], 0
je 0x4f46e0
mov edx, dword [edi + 0xc]
not dword [esp + 0x3c]
mov eax, dword [edx + 0x3c]
add eax, dword [edx + 0x38]
jns 0x4f46d6
push dword [esp + 0x3c]
push edi
push edx
call fcn.005379d0
add esp, 0xc
jmp 0x4f46e0
mov eax, dword [edx + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x14]
test byte [edx + 0x30], 0x20
je 0x4f4790
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4f46fd
mov ecx, 0x64e020
jmp 0x4f4709
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x50]
add eax, ebp
mov ebp, dword [esp + 0x74]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
push dword [eax + 8]
push dword [edx + 0x28]
push dword [eax + 4]
push ebp
push ebx
call fcn.0059a750
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x4f4755
push 0
push ebp
push 0
push 9
push edi
call fcn.0051dc60
mov eax, dword [esp + 0x28]
add esp, 0x14
and dword [eax + 0x30], 0xffffffdf
jmp 0x4f480c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
and dword [eax + 0x30], 0xffffffdf
jmp 0x4f480c
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x74]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 4]
lea edx, [ebp + 1]
mov dword [esp + 0x80], eax
cmp dword [edi + 0x70], ecx
jg 0x4f47c1
push 0
push edx
push eax
push 0x27
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x4f47f6
mov ebx, dword [esp + 0x80]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4f480c
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4f481e
mov eax, 0x64e020
jmp 0x4f482c
mov eax, dword [esi]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], edx
test ecx, ecx
je 0x4f484b
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4f484b
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], ecx
inc byte [ebx + 0x13]
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4f485d
mov eax, 0x64e020
jmp 0x4f4869
mov eax, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
pop ebp
test eax, eax
je 0x4f4880
push eax
push dword [ebx]
call fcn.005514d0
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x5c
ret