Function at 0x4ff260
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 0x4ff2b9
push eax
push eax
push eax
lea edx, [eax + 0x11]
mov ecx, esi
call fcn.00491e40
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x4ff2ec
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 0x4ff743
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 0x4ff597
test byte [edx + 0x24], 8
je 0x4ff36e
test byte [esi + 4], 1
je 0x4ff597
mov ecx, dword [esp + 0x38]
mov eax, 3
mov word [esp + 0x88], ax
mov dword [esp + 0x78], fcn.004ab6f0
mov dword [esp + 0x7c], 0x4ab5d0
mov eax, dword [ecx]
mov dword [esp + 0x8c], eax
test esi, esi
je 0x4ff3da
mov edx, esi
lea ecx, [esp + 0x74]
call fcn.004a5900
cmp word [esp + 0x88], 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
je 0x4ff594
mov ecx, dword [ebx]
mov edx, esi
push 0
push 0
call fcn.004aa540
mov ecx, dword [esp + 0x40]
add esp, 8
mov esi, eax
mov dword [esp + 0x48], eax
jmp 0x4ff3e0
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 0x4ff590
test esi, esi
je 0x4ff594
mov eax, dword [eax + 4]
lea ecx, [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x4ff426
mov eax, dword [ecx]
and eax, 0x20000001
mov dword [esp + 0x4c], ecx
cmp eax, 0x20000000
jne 0x4ff4f5
cmp byte [ebx + 0xd0], 2
mov dword [esp + 0x4c], ecx
jae 0x4ff4f5
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.004aa3b0
mov edx, esi
mov ecx, ebx
call fcn.004aa3b0
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov ecx, 0x590850
call fcn.004717c0
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.0046d980
mov edx, eax
add esp, 8
mov dword [esp + 0x28], edx
test edx, edx
je 0x4ff4e8
push 0x34
push 0
push edx
call fcn.0054bbf0
mov edx, dword [esp + 0x34]
or eax, 0xffffffff
add esp, 0xc
mov byte [edx], 0x9b
mov word [edx + 0x22], ax
test esi, esi
je 0x4ff4d6
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 0x4ff594
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 0x4ff594
push 0
push 0x34
mov ecx, edx
call fcn.0046d980
mov esi, eax
add esp, 8
test esi, esi
je 0x4ff572
push 0x34
push 0
push esi
call fcn.0054bbf0
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.004a9670
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [esi + 0x18], eax
jle 0x4ff588
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00470b70
add esp, 0xc
jmp 0x4ff588
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx]
call fcn.004aa250
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx]
call fcn.004aa250
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 0x4ff725
movzx ecx, word [edi + 0xc]
test cl, 0x82
je 0x4ff721
test byte [edx + 0x24], 8
je 0x4ff5c5
mov eax, dword [edi]
test byte [eax + 4], 1
jne 0x4ff5c5
test cl, cl
js 0x4ff721
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4ff721
mov edx, dword [edi + 0x18]
test edx, edx
js 0x4ff721
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.004a8c40
test eax, eax
je 0x4ff721
mov edx, dword [edi + 0x18]
xor esi, esi
cmp edx, 0x40
jl 0x4ff616
mov dword [esp + 0x48], SysStringLen
jmp 0x4ff62f
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 0x4ff65b
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.00470150
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 0x4ff721
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 0x4ff6f3
lea eax, [edx + 7]
and eax, 0xfffffff8
mov dword [esp + 0x4c], eax
shl eax, 2
push 0
push eax
call fcn.0046d980
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
je 0x50017c
mov edx, dword [esp + 0x30]
movzx ecx, word [edx + 0x34]
shl ecx, 2
push ecx
push dword [edx + 0x38]
push eax
call fcn.0054b670
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [ecx + 0x38]
lea eax, [ecx + 0x40]
cmp edx, eax
je 0x4ff6de
mov ecx, dword [esp + 0x60]
call fcn.0046d590
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 0x4ff6f7
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 0x4ff729
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edx, dword [ebp + 8]
add edi, 0x30
cmp edi, dword [esp + 0x50]
jb 0x4ff352
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
jmp 0x4ff74b
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 0x4ff7a5
mov edi, esi
xor esi, esi
mov dword [esp + 0x18], edi
jmp 0x4ff7b5
mov edi, ecx
mov dword [esp + 0x4c], ecx
xor esi, esi
mov dword [esp + 0x18], edi
test edi, edi
jle 0x4ff7f6
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 0x4ff7e5
inc dword [esp + 0x24]
inc esi
cmp esi, edi
jl 0x4ff7c0
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 0x4ff814
jl 0x4ff805
test edx, edx
jae 0x4ff814
mov eax, dword [esp + 0x24]
add eax, 0xffffffc1
add eax, ecx
mov dword [esp + 0x24], eax
jmp 0x4ff818
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 0x4ff855
call fcn.0046d980
jmp 0x4ff85a
call fcn.0046d2c0
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x50017c
push dword [esp + 0x60]
push 0
push eax
call fcn.0054bbf0
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 0x4ffa94
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 0x4ffa70
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x4ffa6d
mov eax, dword [ebp + 8]
test byte [eax + 0x24], 8
je 0x4ff94a
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x4ff94a
test cl, cl
js 0x4ffa6d
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4ffa6d
mov edx, dword [esi + 0x18]
test edx, edx
js 0x4ffa69
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.004a8c40
test eax, eax
je 0x4ffa69
mov eax, dword [esi + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x68], ecx
cmp eax, 0x40
jl 0x4ff99f
mov esi, SysReAllocString
jmp 0x4ff9b2
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 0x4ffa65
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 0x4ffa04
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
jmp 0x4ffa0a
mov esi, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
test dword [edx + 4], 0x100
jne 0x4ffa2d
test esi, esi
je 0x4ffa20
test dword [esi + 4], 0x100
jne 0x4ffa2b
mov ecx, ebx
call fcn.004a8a90
test eax, eax
jne 0x4ffa38
mov edx, esi
mov ecx, ebx
call fcn.004a8a90
test eax, eax
je 0x4ffa3c
mov ecx, dword [eax]
jmp 0x4ffa41
mov ecx, 0x593588
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 0x4ffa74
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 0x4ff910
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 0x4ffaed
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 0x4ffad8
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], 0x593588
inc edi
mov edx, dword [esp + 0x38]
inc esi
mov ebx, edx
cmp esi, dword [esp + 0x18]
jl 0x4ffaa0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 0
jg 0x4ffb35
jl 0x4ffafe
cmp dword [eax + 0x38], 0
jae 0x4ffb35
mov esi, dword [esp + 0x44]
mov eax, 0x3f
cmp ax, word [esi + 0x22]
jge 0x4ffb35
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], 0x593588
inc edi
movsx eax, word [esi + 0x22]
cmp ecx, eax
jl 0x4ffb13
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], 0x593588
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 0x4ffb88
push 0
push edx
push eax
mov edx, 0x73
mov ecx, esi
call fcn.00491e40
add esp, 0xc
lea edi, [esi + 0x70]
jmp 0x4ffbbd
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.004c4a40
mov dword [esp + 0x60], eax
test eax, eax
je 0x4ffc0c
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x4ffbf6
push eax
mov edx, 0xfffffff7
call fcn.00492950
add esp, 4
lea edi, [esi + 0x70]
jmp 0x4ffc0c
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 0x4ffc76
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 0x4ffc44
push 0
push edx
push 0x2710
mov edx, 0x4c
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x4ffc76
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 0x4ffd97
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 0x4ffccd
push 0
push 0
push 0
mov edx, 0x47
mov ecx, esi
call fcn.00491e40
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov dword [esp + 0x58], eax
jmp 0x4ffd03
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 0x4ffd2f
push eax
push 0
push edx
mov edx, 0xd
mov ecx, esi
call fcn.00491e40
mov edx, dword [esp + 0x6c]
add esp, 0xc
jmp 0x4ffd61
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 0x4ffd83
push 0
push 0
push edx
mov edx, 0xe
call fcn.00491e40
add esp, 0xc
mov esi, eax
jmp 0x4ffdee
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 0x4ffdce
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + 0x74]
mov edx, dword [edx + 4]
cmp dword [ecx + 0x78], esi
jg 0x4ffdbc
push 0
push 0
push edx
mov edx, 0x26
call fcn.00491e40
add esp, 0xc
mov esi, eax
jmp 0x4ffdee
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 0x4ffe18
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x4c], ecx
call fcn.004b1d30
mov eax, dword [esp + 0x40]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4ffe27
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4ffe36
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.004c7490
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 0x4ffef1
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 0x4ffe9d
push dword [esp + 0x54]
mov edx, 0xb2
push 0
push eax
call fcn.00491e40
add esp, 0xc
mov edx, eax
jmp 0x4ffed3
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 0x4ffef1
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 0x4fff25
mov ecx, dword [esp + 0x1c]
mov edx, 0x89
push 0
push dword [esp + 0x44]
push eax
call fcn.00491e40
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x4fff5b
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 0x4fff78
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 0x4fffc0
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 0x4fffaf
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
call fcn.00492660
mov edx, dword [esp + 0x20]
add esp, 4
jmp 0x4fffc0
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 0x50008a
mov ecx, dword [esp + 0x58]
test ecx, ecx
jns 0x4fffda
mov ecx, dword [edx + 0x74]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4fffe9
mov ecx, 0x5cdb30
jmp 0x4ffff1
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.004ff1d0
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x50004b
mov ecx, dword [esp + 0x1c]
mov edx, 0xb
push 0
push esi
push 0
call fcn.00491e40
mov eax, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x1c]
and dword [eax + 0x30], 0xffffffef
jmp 0x50010c
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 0x50010c
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 0x5000bd
mov ecx, dword [esp + 0x1c]
mov edx, 5
push 0
push eax
push dword [esp + 0x68]
call fcn.00491e40
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x5000f2
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 0x50010c
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 0x50011a
lea esi, [eax - 1]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x500129
mov eax, 0x5cdb30
jmp 0x500131
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 0x500154
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x500154
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 0x500162
lea ecx, [esi - 1]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x500171
mov eax, 0x5cdb30
jmp 0x500179
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 0x50018d
mov ecx, dword [ebx]
mov edx, eax
call fcn.004aa250
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret