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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
push ebx
mov ebx, ecx
mov byte [esp + 0xb], 0
push esi
xor ecx, ecx
mov dword [esp + 0x10], ebx
xor eax, eax
mov dword [esp + 0x54], ecx
mov esi, dword [ebx + 8]
push edi
mov edi, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], edi
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], ecx
cmp dword [esi + 0x78], ecx
jg 0x4fb889
push eax
push eax
push eax
lea edx, [eax + 0x11]
mov ecx, esi
call fcn.0048e410
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x4fb8bc
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x11
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 edx, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x14]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x24], 0
mov eax, dword [edx + 0x10]
mov ecx, dword [ecx + 0x4c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
movlpd qword [esp + 0x68], xmm0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
mov dword [esp + 0x50], eax
cmp edi, eax
jae 0x4fbd13
mov eax, dword [esp + 0x6c]
lea ecx, [edx + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 1
mov dword [esp + 0x34], eax
test byte [edi + 0xa], 2
mov esi, dword [edi]
jne 0x4fbb67
test byte [edx + 0x24], 8
je 0x4fb93e
test byte [esi + 4], 1
je 0x4fbb67
mov ecx, dword [esp + 0x38]
mov eax, 3
mov word [esp + 0x88], ax
mov dword [esp + 0x78], fcn.004a7cb0
mov dword [esp + 0x7c], 0x4a7b90
mov eax, dword [ecx]
mov dword [esp + 0x8c], eax
test esi, esi
je 0x4fb9aa
mov edx, esi
lea ecx, [esp + 0x74]
call fcn.004a1ec0
cmp word [esp + 0x88], 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
je 0x4fbb64
mov ecx, dword [ebx]
mov edx, esi
push 0
push 0
call fcn.004a6b00
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, eax
mov dword [esp + 0x48], eax
jmp 0x4fb9b0
xor esi, esi
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x60], edx
mov dword [esp + 0x18], ecx
test eax, eax
je 0x4fbb60
test esi, esi
je 0x4fbb64
mov eax, dword [eax + 4]
lea ecx, [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x4fb9f6
mov eax, dword [ecx]
and eax, 0x20000001
mov dword [esp + 0x4c], ecx
cmp eax, 0x20000000
jne 0x4fbac5
cmp byte [ebx + 0xd0], 2
mov dword [esp + 0x4c], ecx
jae 0x4fbac5
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.004a6970
mov edx, esi
mov ecx, ebx
call fcn.004a6970
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov ecx, 0x588c34
call fcn.0046ddc0
mov ecx, dword [esp + 0x60]
xor edx, edx
mov esi, eax
test esi, esi
push 0
sete dl
lea edx, [edx*2 + 0x34]
push edx
call fcn.00469f80
mov edx, eax
add esp, 8
mov dword [esp + 0x28], edx
test edx, edx
je 0x4fbab8
push 0x34
push 0
push edx
call fcn.00546340
mov edx, dword [esp + 0x34]
or eax, 0xffffffff
add esp, 0xc
mov byte [edx], 0x9b
mov word [edx + 0x22], ax
test esi, esi
je 0x4fbaa6
mov eax, dword [esp + 0x4c]
mov ecx, 0x20800400
test eax, eax
mov dword [edx + 8], eax
mov esi, 0x10800400
mov dword [edx + 0x18], 1
cmovne ecx, esi
or dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
jmp 0x4fbb64
lea eax, [edx + 0x34]
mov dword [edx + 8], eax
mov word [eax], 0x30
mov dword [edx + 0x18], 1
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
jmp 0x4fbb64
push 0
push 0x34
mov ecx, edx
call fcn.00469f80
mov esi, eax
add esp, 8
test esi, esi
je 0x4fbb42
push 0x34
push 0
push esi
call fcn.00546340
mov ecx, dword [esp + 0x58]
or eax, 0xffffffff
mov edx, dword [esp + 0x54]
add esp, 0xc
mov word [esi + 0x22], ax
mov eax, dword [esp + 0x28]
mov byte [esi], 0x2c
mov dword [esi + 0x10], edx
mov ecx, dword [ecx]
and ecx, 0x200104
mov dword [esi + 0xc], eax
or ecx, dword [esi + 4]
mov dword [esi + 4], ecx
mov eax, dword [eax + 4]
and eax, 0x200104
or eax, ecx
mov ecx, esi
mov dword [esi + 4], eax
call fcn.004a5c30
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [esi + 0x18], eax
jle 0x4fbb58
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.0046d170
add esp, 0xc
jmp 0x4fbb58
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx]
call fcn.004a6810
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx]
call fcn.004a6810
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], esi
mov edx, dword [ebp + 8]
mov eax, dword [edi + 0x14]
cmp eax, dword [ecx]
jne 0x4fbcf5
movzx ecx, word [edi + 0xc]
test cl, 0x82
je 0x4fbcf1
test byte [edx + 0x24], 8
je 0x4fbb95
mov eax, dword [edi]
test byte [eax + 4], 1
jne 0x4fbb95
test cl, cl
js 0x4fbcf1
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4fbcf1
mov edx, dword [edi + 0x18]
test edx, edx
js 0x4fbcf1
mov eax, dword [ebp + 8]
add edx, edx
mov ecx, dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx*8 + 8]
call fcn.004a5200
test eax, eax
je 0x4fbcf1
mov edx, dword [edi + 0x18]
xor esi, esi
cmp edx, 0x40
jl 0x4fbbe6
mov dword [esp + 0x48], SysStringLen
jmp 0x4fbbff
mov eax, edx
xor ecx, ecx
bts esi, eax
cmp eax, 0x20
cmovae ecx, esi
xor esi, ecx
cmp eax, 0x40
cmovae ecx, esi
mov dword [esp + 0x48], ecx
cmp byte [esp + 0x13], 0
jne 0x4fbc2b
mov ecx, dword [esp + 0x44]
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.0046c750
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x48]
mov ecx, esi
and ecx, dword [esp + 0x34]
and eax, dword [esp + 0x20]
or ecx, eax
jne 0x4fbcf1
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx]
mov dword [esp + 0x60], ecx
movzx eax, word [edx + 0x34]
mov edx, dword [esp + 0x40]
cmp eax, edx
jge 0x4fbcc3
lea eax, [edx + 7]
and eax, 0xfffffff8
mov dword [esp + 0x4c], eax
shl eax, 2
push 0
push eax
call fcn.00469f80
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4fc74c
mov edx, dword [esp + 0x30]
movzx ecx, word [edx + 0x34]
shl ecx, 2
push ecx
push dword [edx + 0x38]
push eax
call fcn.00545dc0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [ecx + 0x38]
lea eax, [ecx + 0x40]
cmp edx, eax
je 0x4fbcae
mov ecx, dword [esp + 0x60]
call fcn.00469b90
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x4c]
mov word [ecx + 0x34], ax
jmp 0x4fbcc7
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x38]
inc edx
mov ecx, dword [esp + 0x24]
or dword [esp + 0x34], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x40], edx
mov dword [eax + ecx*4], edi
inc ecx
or esi, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], esi
jmp 0x4fbcf9
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edx, dword [ebp + 8]
add edi, 0x30
cmp edi, dword [esp + 0x50]
jb 0x4fb922
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
jmp 0x4fbd1b
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
not esi
movzx eax, ax
or esi, 0x80000000
mov word [ecx + 0x30], ax
not edi
mov word [ecx + 0x18], ax
mov eax, dword [ebp + 8]
mov dword [ecx + 0x2c], 0x4241
mov edx, dword [edx + 0x38]
and edi, edx
mov dword [esp + 0x60], edx
and esi, dword [eax + 0x3c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], esi
mov esi, 0x3f
mov dword [esp + 0x34], edi
movzx eax, word [eax + 0x22]
movsx ecx, ax
mov dword [esp + 0x4c], ecx
cmp si, ax
jge 0x4fbd75
mov edi, esi
xor esi, esi
mov dword [esp + 0x18], edi
jmp 0x4fbd85
mov edi, ecx
mov dword [esp + 0x4c], ecx
xor esi, esi
mov dword [esp + 0x18], edi
test edi, edi
jle 0x4fbdc6
mov ebx, dword [esp + 0x20]
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 + 0x34]
and ecx, ebx
or edx, ecx
je 0x4fbdb5
inc dword [esp + 0x24]
inc esi
cmp esi, edi
jl 0x4fbd90
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 0
jg 0x4fbde4
jl 0x4fbdd5
test edx, edx
jae 0x4fbde4
mov eax, dword [esp + 0x24]
add eax, 0xffffffc1
add eax, ecx
mov dword [esp + 0x24], eax
jmp 0x4fbde8
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx]
movzx eax, ax
inc eax
movzx eax, ax
movsx esi, ax
mov dword [esp + 0x5c], eax
lea eax, [esi*4 + 9]
add eax, esi
lea edi, [esi*4 + 7]
and eax, 0xfffffff8
and edi, 0xfffffff8
add eax, 0x48
add eax, edi
mov dword [esp + 0x60], eax
cdq
push edx
push eax
test ecx, ecx
je 0x4fbe25
call fcn.00469f80
jmp 0x4fbe2a
call fcn.004698c0
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4fc74c
push dword [esp + 0x60]
push 0
push eax
call fcn.00546340
mov ecx, dword [esp + 0x38]
add esp, 0xc
lea edx, [ecx + 4]
xorps xmm0, xmm0
mov dword [esp + 0x38], edx
movlpd qword [esp + 0x68], xmm0
lea eax, [ecx + 0x48]
mov dword [esp + 0x60], edx
mov dword [ecx + 0x20], eax
add eax, edi
mov dword [ecx + 8], eax
xor edi, edi
mov dword [esp + 0x48], edi
lea eax, [eax + esi*2]
add eax, 2
mov dword [edx], eax
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x24]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x5c]
mov word [ecx + 0x34], ax
movzx eax, si
mov word [ecx + 0x32], ax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x54]
mov dword [ecx], str.auto_index
mov esi, dword [eax + 0x18]
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x50]
jae 0x4fc064
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], eax
nop word [eax + eax]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x60], edx
cmp eax, dword [ecx + 0x2c]
jne 0x4fc040
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x4fc03d
mov eax, dword [ebp + 8]
test byte [eax + 0x24], 8
je 0x4fbf1a
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x4fbf1a
test cl, cl
js 0x4fc03d
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4fc03d
mov edx, dword [esi + 0x18]
test edx, edx
js 0x4fc039
mov eax, dword [ebp + 8]
add edx, edx
mov ecx, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx*8 + 8]
call fcn.004a5200
test eax, eax
je 0x4fc039
mov eax, dword [esi + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x68], ecx
cmp eax, 0x40
jl 0x4fbf6f
mov esi, SysReAllocString
jmp 0x4fbf82
xor esi, esi
bts edx, eax
cmp eax, 0x20
cmovae esi, edx
xor edx, esi
cmp eax, 0x40
cmovae esi, edx
mov eax, dword [esp + 0x5c]
mov ecx, edx
and ecx, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x38], eax
mov eax, esi
and eax, dword [esp + 0x4c]
or ecx, eax
jne 0x4fc035
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
or dword [esp + 0x48], edx
mov edx, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov ecx, dword [ecx]
or dword [esp + 0x4c], esi
mov word [eax + edi*2], dx
test dword [ecx + 4], 0x200
je 0x4fbfd4
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
jmp 0x4fbfda
mov esi, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
test dword [edx + 4], 0x100
jne 0x4fbffd
test esi, esi
je 0x4fbff0
test dword [esi + 4], 0x100
jne 0x4fbffb
mov ecx, ebx
call fcn.004a5050
test eax, eax
jne 0x4fc008
mov edx, esi
mov ecx, ebx
call fcn.004a5050
test eax, eax
je 0x4fc00c
mov ecx, dword [eax]
jmp 0x4fc011
mov ecx, 0x58b938
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 0x20]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], eax
jmp 0x4fc044
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x18]
add esi, 0x30
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x50]
jb 0x4fbee0
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x48], edi
mov dword [esp + 0x60], eax
xor esi, esi
cmp dword [esp + 0x18], esi
jle 0x4fc0bd
mov ebx, dword [esp + 0x60]
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 + 0x34]
and ecx, dword [esp + 0x20]
or edx, ecx
je 0x4fc0a8
mov eax, dword [ebx]
mov word [eax + edi*2], si
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov dword [eax + edi*4], 0x58b938
inc edi
mov edx, dword [esp + 0x38]
inc esi
mov ebx, edx
cmp esi, dword [esp + 0x18]
jl 0x4fc070
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 0
jg 0x4fc105
jl 0x4fc0ce
cmp dword [eax + 0x38], 0
jae 0x4fc105
mov esi, dword [esp + 0x44]
mov eax, 0x3f
cmp ax, word [esi + 0x22]
jge 0x4fc105
mov ebx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [edx]
mov word [eax + edi*2], cx
inc ecx
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4], 0x58b938
inc edi
movsx eax, word [esi + 0x22]
cmp ecx, eax
jl 0x4fc0e3
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov eax, dword [edx]
or ecx, 0xffffffff
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
inc edx
mov word [eax + edi*2], cx
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x20]
mov dword [eax + edi*4], 0x58b938
mov eax, dword [ebx + 0x28]
mov dword [ecx + 8], eax
inc dword [ebx + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x68], eax
cmp dword [esi + 0x78], ecx
jg 0x4fc158
push 0
push edx
push eax
mov edx, 0x73
mov ecx, esi
call fcn.0048e410
add esp, 0xc
lea edi, [esi + 0x70]
jmp 0x4fc18d
mov ebx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea edi, [esi + 0x70]
mov eax, dword [edi]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 8]
mov ecx, ebx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
call fcn.004c1020
mov dword [esp + 0x60], eax
test eax, eax
je 0x4fc1dc
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x4fc1c6
push eax
mov edx, 0xfffffff7
call fcn.0048ef20
add esp, 4
lea edi, [esi + 0x70]
jmp 0x4fc1dc
mov eax, dword [edx + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0x60]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebx]
test dword [eax + 0x50], 0x80000
jne 0x4fc246
mov ecx, dword [ebp + 0x14]
inc dword [ebx + 0x2c]
mov edx, dword [ebx + 0x2c]
mov dword [ecx + 0x34], edx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fc214
push 0
push edx
push 0x2710
mov edx, 0x4c
mov ecx, esi
call fcn.0048e410
add esp, 0xc
jmp 0x4fc246
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0x4c
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 edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x38]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 0x30], 0x10
lea eax, [eax + ecx*8]
mov dword [esp + 0x44], eax
je 0x4fc367
mov ecx, dword [esi + 0x74]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], ecx
cmp dword [esi + 0x78], ecx
jg 0x4fc29d
push 0
push 0
push 0
mov edx, 0x47
mov ecx, esi
call fcn.0048e410
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov dword [esp + 0x58], eax
jmp 0x4fc2d3
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
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 + 0x44]
mov ecx, dword [esi + 0x74]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x68], eax
cmp dword [esi + 0x78], ecx
jg 0x4fc2ff
push eax
push 0
push edx
mov edx, 0xd
mov ecx, esi
call fcn.0048e410
mov edx, dword [esp + 0x6c]
add esp, 0xc
jmp 0x4fc331
mov ebx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + 0x74]
cmp dword [ecx + 0x78], esi
jg 0x4fc353
push 0
push 0
push edx
mov edx, 0xe
call fcn.0048e410
add esp, 0xc
mov esi, eax
jmp 0x4fc3be
lea eax, [esi + 1]
mov dword [ecx + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xe
jmp 0x4fc39e
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + 0x74]
mov edx, dword [edx + 4]
cmp dword [ecx + 0x78], esi
jg 0x4fc38c
push 0
push 0
push edx
mov edx, 0x26
call fcn.0048e410
add esp, 0xc
mov esi, eax
jmp 0x4fc3be
lea eax, [esi + 1]
mov dword [ecx + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0x26
mov ebx, dword [esp + 0x14]
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 0x4fc3e8
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x4c], ecx
call fcn.004ae2f0
mov eax, dword [esp + 0x40]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4fc3f7
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4fc406
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x98]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
push 0
push 0
push 0
push 0
push eax
push dword [ecx + 4]
mov ecx, ebx
mov dword [esp + 0x58], eax
call fcn.004c3a70
mov dword [esp + 0x6c], eax
add esp, 0x18
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x68], eax
test eax, eax
je 0x4fc4c1
mov edx, dword [esp + 0x30]
movzx ecx, word [edx + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x4fc46d
push dword [esp + 0x54]
mov edx, 0xb2
push 0
push eax
call fcn.0048e410
add esp, 0xc
mov edx, eax
jmp 0x4fc4a3
mov ebx, dword [esp + 0x68]
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0xb2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
jne 0x4fc4c1
mov eax, dword [edi]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x60]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
mov ecx, dword [edx + 0x74]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
cmp dword [edx + 0x78], ecx
jg 0x4fc4f5
mov ecx, dword [esp + 0x1c]
mov edx, 0x89
push 0
push dword [esp + 0x44]
push eax
call fcn.0048e410
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x4fc52b
mov ebx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x89
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x74]
test ecx, ecx
jle 0x4fc548
mov eax, dword [edi]
lea ecx, [ecx + ecx*4]
mov ebx, 0x10
mov word [eax + ecx*4 - 0x12], bx
mov ecx, dword [edx + 0x74]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x28], 0
je 0x4fc590
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0xc]
not dword [esp + 0x3c]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x3c]
add eax, dword [ebx + 0x38]
mov ebx, dword [esp + 0x14]
jns 0x4fc57f
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
call fcn.0048ec30
mov edx, dword [esp + 0x20]
add esp, 4
jmp 0x4fc590
mov eax, dword [edx + 0xc]
mov ebx, dword [esp + 0x3c]
mov eax, dword [eax + 0x40]
mov dword [eax + ebx*4], ecx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
test byte [eax + 0x30], 0x10
je 0x4fc65a
mov ecx, dword [esp + 0x58]
test ecx, ecx
jns 0x4fc5aa
mov ecx, dword [edx + 0x74]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4fc5b9
mov ecx, 0x5c0f30
jmp 0x4fc5c1
mov eax, dword [edi]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x48]
mov edx, esi
add eax, dword [esp + 0x54]
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x44]
push dword [ecx + 8]
push dword [eax + 0x28]
push dword [ecx + 4]
mov ecx, ebx
call fcn.004fb790
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x4fc61b
mov ecx, dword [esp + 0x1c]
mov edx, 0xb
push 0
push esi
push 0
call fcn.0048e410
mov eax, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x1c]
and dword [eax + 0x30], 0xffffffef
jmp 0x4fc6dc
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x44]
and dword [eax + 0x30], 0xffffffef
jmp 0x4fc6dc
mov ecx, dword [ebp + 0x14]
lea eax, [esi + 1]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x4fc68d
mov ecx, dword [esp + 0x1c]
mov edx, 5
push 0
push eax
push dword [esp + 0x68]
call fcn.0048e410
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x4fc6c2
mov ebx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4 + 4], ebx
lea ebx, [esi + 1]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x74]
test eax, eax
jle 0x4fc6dc
lea ecx, [eax + eax*4]
mov ebx, 3
mov eax, dword [edi]
mov word [eax + ecx*4 - 0x12], bx
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 0x74]
mov dword [esp + 0x68], eax
test esi, esi
jns 0x4fc6ea
lea esi, [eax - 1]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4fc6f9
mov eax, 0x5c0f30
jmp 0x4fc701
mov eax, dword [edi]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4fc724
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4fc724
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
mov ecx, dword [esp + 0x64]
mov esi, dword [edx + 0x74]
test ecx, ecx
jns 0x4fc732
lea ecx, [esi - 1]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4fc741
mov eax, 0x5c0f30
jmp 0x4fc749
mov eax, dword [edi]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4fc75d
mov ecx, dword [ebx]
mov edx, eax
call fcn.004a6810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret