Function at 0x4e5110
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 0x4e5164
push eax
push eax
push eax
push 0xf
push edi
call fcn.0050f290
mov edx, dword [esp + 0x90]
add esp, 0x14
mov dword [esp + 0x58], eax
jmp 0x4e5197
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 0x4e54bf
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 0x4e536e
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + 0x3c]
push eax
push ecx
push ebp
call fcn.005438d0
add esp, 0xc
test eax, eax
je 0x4e536a
test ebp, ebp
je 0x4e5245
push 0
push 0
push ebp
push dword [ebx]
call fcn.004eb740
add esp, 0x10
mov dword [esp + 0x2c], eax
mov ebp, eax
jmp 0x4e524b
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 0x4e5366
test ebp, ebp
je 0x4e536a
mov eax, dword [edx + 4]
or eax, dword [ebp + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x4e52c2
cmp byte [ebx + 0xdc], 2
jae 0x4e52c2
push edx
push ebx
call fcn.00542a60
push ebp
push ebx
call fcn.00542a60
push 0
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x60c7e4
push eax
push 0x9b
push dword [esp + 0x74]
mov dword [esp + 0x88], 1
call fcn.0053f160
add esp, 0x20
mov dword [esp + 0x28], eax
jmp 0x4e536a
push 0
push 0x34
push ecx
call fcn.0053c1d0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4e534b
push 0x34
push 0
push ebp
call fcn.00423ff0
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 0x4e532d
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [ebp + 0x18], eax
jle 0x4e5366
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.0053e8f0
add esp, 0xc
jmp 0x4e5366
mov eax, dword [esp + 0x28]
push eax
push dword [ebx]
call fcn.00542b00
mov eax, dword [esp + 0x34]
push eax
push dword [ebx]
call fcn.00542b00
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 0x4e54a8
test byte [esi + 0xc], 0x82
je 0x4e54a8
test byte [ebp + 0x2c], 0x58
je 0x4e53a3
lea eax, [ebp + 8]
push eax
push esi
call fcn.004e50e0
add esp, 8
test eax, eax
je 0x4e54a4
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4e54a4
mov ecx, dword [esi + 0x18]
test ecx, ecx
js 0x4e54a4
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.005537e0
add esp, 8
test eax, eax
je 0x4e54a4
mov edx, dword [esi + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x4e53fe
mov dword [esp + 0x2c], 0x80000000
jmp 0x4e5417
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 0x4e5443
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.004c6060
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 0x4e549e
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.0059aa70
add esp, 0xc
test eax, eax
jne 0x4e5e9c
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 0x4e54a8
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
add esi, 0x30
cmp esi, dword [esp + 0x50]
jb 0x4e5200
mov esi, dword [esp + 0x30]
jmp 0x4e54c3
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 0x4e54f9
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
jmp 0x4e5511
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 0x4e5530
mov ebp, edx
mov dword [esp + 0x2c], ebp
jmp 0x4e553e
mov ebp, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x2c], ebp
test ebp, ebp
jle 0x4e557a
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 0x4e5569
inc dword [esp + 0x1c]
inc esi
cmp esi, ebp
jl 0x4e5546
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 0x4e559b
jl 0x4e558c
cmp dword [eax + 0x40], 0
jae 0x4e559b
mov eax, dword [esp + 0x1c]
add eax, 0xffffffc1
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x4e559f
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 0x4e55e0
push ecx
call fcn.0053c1d0
add esp, 0xc
jmp 0x4e55e8
call fcn.00557720
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x4e5e9c
push dword [esp + 0x58]
push 0
push eax
call fcn.00423ff0
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 0x4e580d
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 0x4e57ed
test byte [esi + 0xc], 0x82
je 0x4e57ed
test byte [ecx + 0x2c], 0x58
je 0x4e56cd
lea eax, [ecx + 8]
push eax
push esi
call fcn.004e50e0
mov edx, dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x4e57e9
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x24]
and ecx, dword [esi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4e57e9
mov ecx, dword [esi + 0x18]
test ecx, ecx
js 0x4e57e9
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.005537e0
add esp, 8
test eax, eax
je 0x4e57e5
mov ecx, dword [esi + 0x18]
xor edx, edx
movzx eax, cx
mov dword [esp + 0x64], eax
cmp ecx, 0x40
jl 0x4e5730
mov eax, 0x80000000
jmp 0x4e5743
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 0x4e57e5
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.005427a0
add esp, 8
test eax, eax
je 0x4e5798
mov ecx, dword [eax]
jmp 0x4e579d
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 0x4e57e9
push eax
mov dword [esp + 0x24], ecx
call fcn.0053f090
mov ecx, dword [esp + 0x18]
add esp, 4
cmp al, 0x42
je 0x4e58ff
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x13], 1
mov dword [esp + 0x20], edx
jmp 0x4e57ed
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esi, 0x30
cmp esi, dword [esp + 0x50]
jb 0x4e5690
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 0x4e586b
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 0x4e5858
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 0x4e5820
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0
jg 0x4e58b0
jl 0x4e587d
cmp dword [eax + 0x40], 0
jae 0x4e58b0
mov esi, dword [esp + 0x40]
mov eax, 0x3f
cmp ax, word [esi + 0x22]
jge 0x4e58b0
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 0x4e5892
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 0x4e5908
push 0
push edx
push eax
push 0x74
push edi
call fcn.0050f290
add esp, 0x14
lea esi, [edi + 0x68]
jmp 0x4e593d
mov edx, dword [esp + 0x20]
jmp 0x4e57ed
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.00556090
mov edx, eax
add esp, 8
test edx, edx
je 0x4e5998
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
je 0x4e5982
cmp dword [ecx + 0x210], 0
jne 0x4e597d
add dword [edx], 0xffffffff
jne 0x4e597d
push edx
push dword [edx + 0xc]
call fcn.0053c330
add esp, 8
lea esi, [edi + 0x68]
jmp 0x4e5998
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 0x4e5a23
cmp byte [esp + 0x13], 0
je 0x4e5a23
mov eax, dword [esp + 0x74]
push dword [esp + 0x80]
push dword [eax]
push ebx
call fcn.00585940
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 0x4e59f1
push 0
push edx
push 0x2710
push 0x4d
push edi
call fcn.0050f290
add esp, 0x14
jmp 0x4e5a23
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 0x4e5b29
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 0x4e5a5f
push 0
push 0
push 0
push 0x47
push edi
call fcn.0050f290
mov edx, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x54], eax
jmp 0x4e5a95
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 0x4e5ab9
push eax
push 0
push edx
push 0xb
push edi
call fcn.0050f290
add esp, 0x14
jmp 0x4e5aeb
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 0x4e5b11
mov edx, dword [esp + 0x50]
push 0
push 0
push edx
push 0xc
push edi
call fcn.0050f290
add esp, 0x14
mov dword [esp + 0x74], eax
jmp 0x4e5b8b
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 0x4e5b6f
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 0x4e5b59
push 0
push 0
push eax
push 0x24
push edi
call fcn.0050f290
add esp, 0x14
mov dword [esp + 0x74], eax
jmp 0x4e5b8b
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 0x4e5bb5
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x4c], ecx
call fcn.00542df0
mov eax, dword [esp + 0x44]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4e5bc4
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4e5bd3
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.00551830
mov edx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x50], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4e5c67
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 0x4e5c35
push dword [esp + 0x58]
push eax
push 0
push edx
push 0xb7
push edi
call fcn.004d8850
add esp, 0x18
jmp 0x4e5c67
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 0x4e5c95
mov edx, dword [esp + 0x40]
push 0
push edx
push eax
push 0x8a
push edi
call fcn.0050f290
add esp, 0x14
jmp 0x4e5cc7
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 0x4e5ce0
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 0x4e5d10
mov edx, dword [edi + 0xc]
not dword [esp + 0x3c]
mov eax, dword [edx + 0x3c]
add eax, dword [edx + 0x38]
jns 0x4e5d06
push dword [esp + 0x3c]
push edi
push edx
call fcn.00529000
add esp, 0xc
jmp 0x4e5d10
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 0x4e5dc0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4e5d2d
mov ecx, 0x63d108
jmp 0x4e5d39
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.0058bd80
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x4e5d85
push 0
push ebp
push 0
push 9
push edi
call fcn.0050f290
mov eax, dword [esp + 0x28]
add esp, 0x14
and dword [eax + 0x30], 0xffffffdf
jmp 0x4e5e3c
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 0x4e5e3c
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 0x4e5df1
push 0
push edx
push eax
push 0x27
push edi
call fcn.0050f290
add esp, 0x14
jmp 0x4e5e26
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 0x4e5e3c
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 0x4e5e4e
mov eax, 0x63d108
jmp 0x4e5e5c
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 0x4e5e7b
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4e5e7b
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 0x4e5e8d
mov eax, 0x63d108
jmp 0x4e5e99
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 0x4e5eb0
push eax
push dword [ebx]
call fcn.00542b00
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x5c
ret