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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [esp + 0x64]
xor ecx, ecx
push esi
xor eax, eax
mov dword [esp + 0x48], ecx
mov byte [esp + 0xa], 0
mov esi, dword [ebx + 8]
mov byte [esp + 0xb], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], ecx
cmp dword [esi + 0x70], ecx
jg 0x4cffca
push eax
push eax
push eax
push 0xf
push esi
call fcn.004dd7e0
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x4cfffd
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 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 edx, dword [esp + 0x78]
xorps xmm0, xmm0
push ebp
mov ebp, dword [esp + 0x70]
push edi
movlpd qword [esp + 0x64], xmm0
mov dword [esp + 0x18], 0
mov eax, dword [ebp]
mov ecx, dword [eax + 4]
movzx eax, byte [edx + 0x3c]
mov edx, dword [edx + 0x50]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x68]
lea eax, [eax + eax*8]
mov dword [esp + 0x3c], ecx
lea ebp, [ecx + eax*8]
lea eax, [ebp + 8]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
mov dword [esp + 0x48], eax
cmp edi, eax
jae 0x4d032d
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
test byte [edi + 0xa], 2
mov ebp, dword [edi]
jne 0x4d01dc
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + 0x3c]
push eax
push ecx
push ebp
call fcn.005098b0
add esp, 0xc
test eax, eax
je 0x4d01d8
test ebp, ebp
je 0x4d00b4
push 0
push 0
push ebp
push dword [ebx]
call fcn.004d5ac0
add esp, 0x10
mov ebp, eax
jmp 0x4d00b6
xor ebp, ebp
mov edx, dword [esp + 0x20]
mov ecx, dword [ebx]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x4d01d4
test ebp, ebp
je 0x4d01d8
mov eax, dword [edx + 4]
or eax, dword [ebp + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x4d012d
cmp byte [ebx + 0xd8], 2
jae 0x4d012d
push edx
push ebx
call fcn.00508b80
push ebp
push ebx
call fcn.00508b80
push 0
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x6ec614
push eax
push 0x9b
push dword [esp + 0x60]
mov dword [esp + 0x88], 1
call fcn.00505690
add esp, 0x20
mov dword [esp + 0x20], eax
jmp 0x4d01d8
push 0
push 0x34
push ecx
call fcn.00503030
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4d01b9
push 0x34
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x38]
or ecx, 0xffffffff
add esp, 0xc
mov word [eax + 0x22], cx
mov dword [eax + 0x10], ebp
mov byte [eax], 0x2c
mov edx, dword [ebp + 4]
and edx, 0x400208
or edx, dword [eax + 4]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x20]
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 + 0x20]
mov eax, dword [eax + 0x18]
cmp eax, ecx
jl 0x4d019b
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [ebp + 0x18], eax
jle 0x4d01d4
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.00505000
add esp, 0xc
jmp 0x4d01d4
mov eax, dword [esp + 0x20]
push eax
push dword [ebx]
call fcn.00508c00
push ebp
push dword [ebx]
call fcn.00508c00
mov ebp, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
cmp eax, dword [ebp + 0x34]
jne 0x4d0316
test byte [edi + 0xc], 0x82
je 0x4d0316
test byte [ebp + 0x2c], 0x58
je 0x4d0211
lea eax, [ebp + 8]
push eax
push edi
call fcn.004cff50
add esp, 8
test eax, eax
je 0x4d0312
mov ecx, dword [esp + 0x78]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4d0312
mov ecx, dword [edi + 0x18]
test ecx, ecx
js 0x4d0312
mov eax, dword [ebp + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x40], al
push dword [esp + 0x40]
push dword [edi]
call fcn.005125e0
add esp, 8
test eax, eax
je 0x4d0312
mov edx, dword [edi + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x4d026c
mov dword [esp + 0x2c], getsockname
jmp 0x4d0285
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 0x4d02b1
mov ecx, dword [esp + 0x38]
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.004b1f90
add esp, 0x10
mov byte [esp + 0x12], 1
mov eax, dword [esp + 0x2c]
mov ecx, ebp
mov edx, dword [esp + 0x14]
and eax, edx
and ecx, dword [esp + 0x28]
or ecx, eax
jne 0x4d030c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
inc eax
push eax
push ecx
push dword [ebx]
mov dword [esp + 0x50], eax
call fcn.00550d60
add esp, 0xc
test eax, eax
jne 0x4d0c8a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
or dword [esp + 0x28], ebp
mov eax, dword [eax + 0x38]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x1c]
jmp 0x4d0316
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
add edi, 0x30
cmp edi, dword [esp + 0x48]
jb 0x4d0073
mov edi, dword [esp + 0x28]
jmp 0x4d0331
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
movzx eax, ax
mov word [ecx + 0x30], ax
mov word [ecx + 0x18], ax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x2c], 0x4241
cmp byte [eax + 0x2b], 2
jne 0x4d0367
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
jmp 0x4d037f
not edx
not edi
and edi, dword [ebp + 0x40]
or edx, 0x80000000
and edx, dword [ebp + 0x44]
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edx
movzx ecx, word [eax + 0x22]
mov edx, 0x3f
xor edi, edi
mov dword [esp + 0x44], ecx
movzx eax, cx
cmp dx, cx
jge 0x4d039e
mov ebp, edx
mov dword [esp + 0x24], ebp
jmp 0x4d03ac
xor edx, edx
movsx ebp, cx
mov dword [esp + 0x24], ebp
cmp dx, ax
jge 0x4d03e8
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, esi
or edx, ecx
je 0x4d03d7
inc dword [esp + 0x18]
inc edi
cmp edi, ebp
jl 0x4d03b4
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x44], 0
jg 0x4d040a
jl 0x4d03fa
cmp dword [eax + 0x40], 0
jae 0x4d040a
movsx eax, cx
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
movzx eax, ax
inc eax
movzx eax, ax
movsx ebp, ax
mov dword [esp + 0x3c], eax
lea edx, [ebp*4 + 7]
and edx, 0xfffffff8
lea eax, [ebp*4 + 9]
add eax, ebp
mov dword [esp + 0x40], edx
and eax, 0xfffffff8
add edx, 0x48
add eax, edx
mov dword [esp + 0x44], eax
cdq
push edx
push eax
test ecx, ecx
je 0x4d0459
push ecx
call fcn.00503030
mov edi, eax
add esp, 0xc
mov dword [esp + 0x2c], edi
jmp 0x4d0467
call fcn.00515c10
add esp, 8
mov dword [esp + 0x2c], eax
mov edi, eax
test edi, edi
je 0x4d0c8a
push dword [esp + 0x44]
push 0
push edi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x24]
lea eax, [edi + 0x48]
mov dword [edi + 0x20], eax
add esp, 0xc
add eax, dword [esp + 0x40]
xorps xmm0, xmm0
mov dword [edi + 8], eax
movlpd qword [esp + 0x64], xmm0
lea eax, [eax + ebp*2]
add eax, 2
mov dword [edi + 4], eax
lea eax, [eax + ebp*2]
mov ebp, dword [esp + 0x74]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov word [edi + 0x34], ax
movzx eax, cx
mov word [edi + 0x32], ax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x38]
mov dword [edi], str.auto_index
mov dword [edi + 0xc], eax
xor edi, edi
mov ebp, dword [ebp + 0x18]
cmp ebp, dword [esp + 0x48]
jae 0x4d0639
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x44], esi
cmp eax, dword [edx + 0x34]
jne 0x4d0624
test byte [ebp + 0xc], 0x82
je 0x4d0624
test byte [edx + 0x2c], 0x58
je 0x4d052e
push dword [esp + 0x58]
push ebp
call fcn.004cff50
add esp, 8
test eax, eax
je 0x4d0624
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp + 0x24]
and ecx, dword [ebp + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4d0624
mov ecx, dword [ebp + 0x18]
test ecx, ecx
js 0x4d0624
mov eax, dword [edx + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x5c], al
push dword [esp + 0x5c]
push dword [ebp]
call fcn.005125e0
add esp, 8
test eax, eax
je 0x4d0624
mov eax, dword [ebp + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x60], ecx
cmp eax, 0x40
jl 0x4d0592
mov eax, bind
mov dword [esp + 0x3c], eax
jmp 0x4d05ab
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
mov dword [esp + 0x3c], ecx
mov eax, ecx
and eax, dword [esp + 0x40]
mov ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov esi, dword [esp + 0x44]
jne 0x4d0624
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebp]
or dword [esp + 0x24], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
push ecx
push ebx
mov dword [esp + 0x6c], ecx
mov word [eax + edi*2], dx
call fcn.00508980
add esp, 8
test eax, eax
je 0x4d05f5
mov ecx, dword [eax]
jmp 0x4d05fa
mov ecx, 0x6e921c
mov eax, dword [esi + 0x20]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
mov esi, ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4d0624
push eax
call fcn.005055c0
add esp, 4
cmp al, 0x42
je 0x4d0624
mov byte [esp + 0x13], 1
add ebp, 0x30
cmp ebp, dword [esp + 0x48]
jb 0x4d04f1
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x34]
xor ebp, ebp
cmp dword [esp + 0x24], ebp
jle 0x4d0692
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, ebp
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x28]
and ecx, dword [esp + 0x14]
or edx, ecx
je 0x4d0685
mov eax, dword [ebx + 4]
mov word [eax + edi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4], 0x6e921c
inc edi
inc ebp
cmp ebp, esi
jl 0x4d0650
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x44], 0
jg 0x4d06dd
jl 0x4d06a4
cmp dword [eax + 0x40], 0
jae 0x4d06dd
mov edx, dword [esp + 0x38]
mov eax, 0x3f
mov ebp, dword [esp + 0x2c]
cmp ax, word [edx + 0x22]
jge 0x4d06e1
mov ecx, eax
nop dword [eax]
mov eax, dword [ebp + 4]
mov word [eax + edi*2], cx
inc ecx
mov eax, dword [ebp + 0x20]
mov dword [eax + edi*4], 0x6e921c
inc edi
movsx eax, word [edx + 0x22]
cmp ecx, eax
jl 0x4d06c0
jmp 0x4d06e1
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 4]
or ecx, 0xffffffff
mov edx, dword [esp + 0x18]
inc edx
mov word [eax + edi*2], cx
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x80]
mov dword [eax + edi*4], 0x6e921c
mov eax, dword [ebx + 0x28]
mov dword [ecx + 8], eax
inc dword [ebx + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x4d072a
push 0
push edx
push eax
push 0x74
push esi
call fcn.004dd7e0
add esp, 0x14
jmp 0x4d075d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
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
mov eax, dword [ebx + 8]
push ebp
push ebx
mov dword [esp + 0x6c], eax
call fcn.00514ae0
mov edx, eax
add esp, 8
test edx, edx
je 0x4d07af
mov ebp, dword [esp + 0x64]
mov eax, dword [ebp]
cmp byte [eax + 0x57], 0
je 0x4d079d
cmp dword [eax + 0x210], 0
jne 0x4d07af
add dword [edx], 0xffffffff
jne 0x4d07af
push edx
push dword [edx + 0xc]
call fcn.00503150
add esp, 8
jmp 0x4d07af
mov eax, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 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 0x4d082d
cmp byte [esp + 0x13], 0
je 0x4d082d
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x80]
push ebp
push dword [eax]
push ebx
call fcn.0053e430
inc dword [ebx + 0x2c]
add esp, 0xc
mov edx, dword [ebx + 0x2c]
mov dword [ebp + 0x34], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d07fe
push 0
push edx
push 0x2710
push 0x4d
push esi
call fcn.004dd7e0
add esp, 0x14
jmp 0x4d082d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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 ebp, dword [esp + 0x1c]
test byte [ebp + 0x30], 0x20
je 0x4d0930
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], ecx
cmp dword [esi + 0x70], ecx
jg 0x4d086c
push 0
push 0
push 0
push 0x47
push esi
call fcn.004dd7e0
mov edx, dword [esp + 0x88]
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x4d08a3
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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 ecx, dword [esi + 0x6c]
mov ebp, dword [ebp + 0x20]
cmp dword [esi + 0x70], ecx
jg 0x4d08c6
push ebp
push 0
push edx
push 0xb
push esi
call fcn.004dd7e0
mov edx, dword [esp + 0x88]
add esp, 0x14
jmp 0x4d08f5
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebp
jg 0x4d0911
push 0
push 0
push edx
push 0xc
push esi
call fcn.004dd7e0
add esp, 0x14
mov ebp, eax
jmp 0x4d098f
mov ebx, dword [esp + 0x70]
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov dword [eax + ecx*4], 0xc
jmp 0x4d0973
mov eax, dword [esp + 0x80]
mov ebp, dword [esi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [esi + 0x70], ebp
jg 0x4d0956
push 0
push 0
push edx
push 0x24
push esi
call fcn.004dd7e0
add esp, 0x14
mov ebp, eax
jmp 0x4d098f
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov esi, dword [esp + 0x34]
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 + 0x20]
test eax, eax
je 0x4d09b9
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x60], ecx
call fcn.00508ec0
mov ecx, dword [esp + 0x40]
add esp, 0x10
or dword [ecx + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4d09c8
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4d09d7
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa0]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
push dword [eax + 4]
push dword [esp + 0x44]
push ebx
call fcn.00510730
mov edx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x44], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4d0a6f
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + 0x18]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d0a3c
push dword [esp + 0x48]
push eax
push 0
push edx
push 0xb4
push esi
call fcn.004c4c90
add esp, 0x18
jmp 0x4d0a6f
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xfdb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [esi + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x4d0a9d
mov edx, dword [esp + 0x74]
push 0
push edx
push eax
push 0x8a
push esi
call fcn.004dd7e0
add esp, 0x14
jmp 0x4d0ad0
mov edx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
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 eax, dword [esi + 0x6c]
test eax, eax
jle 0x4d0ae7
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x20], 0
je 0x4d0b15
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x50]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d0b0c
push edx
push esi
push ecx
call fcn.004f1810
add esp, 0xc
jmp 0x4d0b15
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x1c]
test byte [eax + 0x30], 0x20
je 0x4d0bbc
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4d0b32
mov ecx, 0x7937a8
jmp 0x4d0b3f
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
add eax, edi
mov edi, dword [esp + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
push dword [eax + 8]
push dword [edi + 0x28]
push dword [eax + 4]
push ebp
push ebx
call fcn.00543e60
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x4d0b87
push 0
push ebp
push 0
push 9
push esi
call fcn.004dd7e0
add esp, 0x14
and dword [edi + 0x30], 0xffffffdf
jmp 0x4d0c28
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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
and dword [edi + 0x30], 0xffffffdf
jmp 0x4d0c28
mov eax, dword [esp + 0x80]
lea edx, [ebp + 1]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 4]
cmp dword [esi + 0x70], ecx
jg 0x4d0be2
push 0
push edx
push edi
push 0x27
push esi
call fcn.004dd7e0
add esp, 0x14
jmp 0x4d0c11
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4d0c28
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4d0c3a
mov eax, 0x7937a8
jmp 0x4d0c49
mov eax, dword [esi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], edx
test ecx, ecx
je 0x4d0c68
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4d0c68
movzx eax, al
mov dword [ebx + eax*4 + 0xa0], ecx
inc byte [ebx + 0x13]
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4d0c7a
mov eax, 0x7937a8
jmp 0x4d0c87
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x20]
pop edi
pop ebp
test eax, eax
je 0x4d0c9f
push eax
push dword [ebx]
call fcn.00508c00
add esp, 8
pop esi
pop ebx
add esp, 0x5c
ret