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

Disassembly:
sub esp, 0x80
push ebx
mov ebx, dword [esp + 0x94]
xorps xmm0, xmm0
movlpd qword [esp + 0x5c], xmm0
mov dword [esp + 0x64], 0
push ebp
mov ebp, dword [esp + 0x8c]
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [ebp]
mov dword [esp + 0x48], edi
mov dword [esp + 0x10], ecx
test ebx, ebx
je 0x4c0216
cmp dword [ebx], 0x40
jl 0x4c0216
mov eax, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esp + 0x9c], ebx
and eax, 0xfeff
jmp 0x4c021d
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x18], eax
mov edx, dword [edx]
mov dword [esp + 0x1c], edx
cmp edx, 0x40
jle 0x4c024f
push 0x40
push str.at_most__d_tables_in_a_join
push ebp
call fcn.00489e60
add esp, 0xc
xor eax, eax
pop edi
pop ebp
pop ebx
add esp, 0x80
ret
push esi
mov esi, 0x358
test al, 0x20
je 0x4c0263
mov dword [esp + 0x20], 1
jmp 0x4c0277
cmp edx, 1
jle 0x4c0277
lea esi, [edx + edx*2]
shl esi, 5
add esi, 0x2ff
and esi, 0xfffffff8
lea eax, [esi + 0x50]
push 0
push eax
push ecx
call fcn.00487b10
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
cmp byte [eax + 0x57], 0
je 0x4c02b5
test ecx, ecx
je 0x4c1147
push ecx
push eax
call fcn.00487a00
add esp, 8
xor eax, eax
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x80
ret
mov eax, dword [esp + 0x98]
xorps xmm0, xmm0
mov edx, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 0xc], eax
mov dword [ecx], ebp
mov dword [ecx + 8], ebx
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x14], 0xffffffff
mov byte [ecx + 0x2c], dl
mov eax, dword [ebp + 0x38]
dec eax
mov dword [ebp + 0x38], eax
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x1c]
mov word [ecx + 0x28], ax
mov eax, dword [esp + 0xb0]
mov word [ecx + 0x2a], ax
mov dword [esp + 0x50], eax
movsx eax, word [ebp + 0x9c]
mov ebp, dword [esp + 0xa8]
mov dword [ecx + 0x24], eax
lea eax, [edx + edx*2]
mov dword [ecx + 0x10], ebp
movups xmmword [ecx + 0x2d], xmm0
shl eax, 5
movups xmmword [ecx + 0x3d], xmm0
add eax, 0x50
mov word [ecx + 0x4d], 0
push eax
mov byte [ecx + 0x4f], 0
add ecx, 0x2f8
push 0
push ecx
mov dword [esp + 0x3c], ecx
call fcn.004e7970
mov edx, dword [esp + 0x1c]
lea ecx, [edx + esi]
push 0x2c
push dword [esp + 0xac]
mov dword [edx + 0x1f4], 0
lea eax, [edx + 0x50]
mov dword [edx + 0x1f8], 0xffffff9d
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x4c], eax
lea eax, [ecx + 0x40]
mov dword [ecx + 0x38], eax
xor eax, eax
mov word [ecx + 0x30], ax
mov eax, 3
mov word [ecx + 0x34], ax
mov dword [ecx + 0x2c], 0
lea ecx, [edx + 0x50]
lea eax, [ecx + 0x20]
mov dword [ecx], edx
push ecx
mov byte [ecx + 9], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 8
mov dword [ecx + 0x18], eax
call fcn.004c5560
add esp, 0x18
cmp dword [esp + 0x20], 0
jne 0x4c041e
mov ecx, dword [esp + 0x10]
test ebx, ebx
je 0x4c03e7
mov al, byte [ebx]
mov byte [ecx + 0x2d], al
test dword [esp + 0x1c], 0x100
je 0x4c03ff
mov eax, dword [esp + 0x14]
test byte [eax + 0x50], 0x10
jne 0x4c03ff
mov byte [ecx + 0x2f], 1
push str.SCAN_CONSTANT_ROW
push 0
push dword [esp + 0x9c]
call fcn.004ba870
mov eax, dword [esp + 0xa4]
add esp, 0xc
jmp 0x4c047e
mov esi, dword [esp + 0x98]
xor ebx, ebx
mov ebp, dword [esp + 0x10]
add esi, 8
mov edi, dword [esp + 0x94]
nop word [eax + eax]
mov ecx, dword [ebp + 0x1f4]
mov eax, dword [esi + 0x2c]
mov dword [ebp + ecx*4 + 0x1f8], eax
lea eax, [ebp + 0x50]
inc dword [ebp + 0x1f4]
push eax
push esi
push edi
call fcn.004c55d0
mov eax, dword [esp + 0xa4]
inc ebx
add esp, 0xc
add esi, 0x48
cmp ebx, dword [eax]
jl 0x4c0440
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 0x38]
mov esi, dword [ecx + 0xc]
sub esi, 1
js 0x4c04af
mov edi, ecx
nop dword [eax]
push esi
push edi
push eax
call fcn.00455390
mov eax, dword [esp + 0xa4]
add esp, 0xc
sub esi, 1
jns 0x4c0490
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
test ebp, ebp
je 0x4c04c3
cmp dword [ebp + 0x3c], 0
je 0x4c04c3
push ebp
push ecx
call fcn.004c00e0
add esp, 8
mov esi, dword [esp + 0x94]
cmp dword [esi + 0x24], 0
jne 0x4c112b
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov dword [esp + 0x40], ecx
lea edx, [ecx + 1]
cmp dword [eax + 0x14], ecx
jle 0x4c05be
mov edi, dword [esp + 0x10]
xor ebp, ebp
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 0x18]
add esi, ebp
test byte [esi + 0xa], 2
jne 0x4c0599
mov eax, dword [esi + 0x28]
or eax, dword [esi + 0x2c]
mov ebx, dword [esi]
jne 0x4c0599
cmp dword [esp + 0x20], eax
je 0x4c0568
mov dword [esp + 0x8c], eax
xorps xmm0, xmm0
movq qword [esp + 0x84], xmm0
mov word [esp + 0x88], dx
movups xmmword [esp + 0x74], xmm0
mov dword [esp + 0x78], 0x4585b0
mov dword [esp + 0x7c], 0x4aa870
test ebx, ebx
je 0x4c0568
lea eax, [esp + 0x74]
push ebx
push eax
call fcn.004bfe10
mov ecx, dword [esp + 0x48]
add esp, 8
cmp word [esp + 0x88], 0
je 0x4c0599
test byte [ebx + 4], 2
je 0x4c057b
mov eax, dword [esp + 0x98]
test byte [eax + 0x2c], 0x40
jne 0x4c0599
push 0x10
push dword [edi + 0x20]
push ebx
push dword [esp + 0xa0]
call fcn.0048e050
mov ecx, dword [esp + 0x50]
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [esp + 0x60]
inc ecx
add ebp, 0x30
mov dword [esp + 0x40], ecx
mov edx, 1
cmp ecx, dword [eax + 0x14]
jl 0x4c04f0
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xa4]
test ecx, 0x100
je 0x4c062f
mov eax, dword [esp + 0x14]
test byte [eax + 0x50], 0x10
je 0x4c05f4
mov ebp, dword [esp + 0x10]
and ecx, 0xfeff
mov eax, 0xfeff
mov dword [esp + 0x1c], ecx
and word [ebp + 0x28], ax
jmp 0x4c0633
push ebx
push dword [esp + 0x3c]
push dword [esp + 0xa0]
push esi
call fcn.00461470
mov ebp, dword [esp + 0x20]
add esp, 0x10
test eax, eax
je 0x4c0617
mov byte [ebp + 0x2f], 1
jmp 0x4c0633
cmp dword [esp + 0xa0], 0
jne 0x4c0633
mov eax, 0x80
mov dword [ebp + 8], ebx
or word [ebp + 0x28], ax
jmp 0x4c0633
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x20], 1
jne 0x4c064b
lea eax, [esp + 0x5c]
push eax
call fcn.004da5c0
add esp, 4
test eax, eax
jne 0x4c06af
lea eax, [esp + 0x5c]
push eax
call fcn.004d5bd0
add esp, 4
test eax, eax
jne 0x4c112b
push eax
push ebp
call fcn.004d9470
mov eax, dword [esp + 0x1c]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x4c112b
cmp dword [ebp + 8], 0
je 0x4c069f
mov ax, word [ebp + 0x34]
inc ax
movzx eax, ax
push eax
push ebp
call fcn.004d9470
mov eax, dword [esp + 0x1c]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x4c112b
mov eax, 0x100
test word [ebp + 0x28], ax
je 0x4c06af
add word [ebp + 0x34], 0xffe2
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x14]
jne 0x4c06d3
mov eax, dword [ecx + 0x20]
and eax, 0x1000
or eax, 0
je 0x4c06d3
push ebp
call fcn.004da1d0
mov ecx, dword [esp + 0x18]
add esp, 4
cmp dword [esi + 0x24], 0
jne 0x4c112b
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
cmp al, 2
jb 0x4c074c
test ebx, ebx
je 0x4c0734
mov eax, dword [esp + 0x1c]
xor edx, edx
and eax, 0x400
cmp dx, ax
jne 0x4c0734
test dword [ecx + 0x50], 0x100
jne 0x4c0734
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.004d8600
mov dword [esp + 0x48], eax
add esp, 0xc
mov al, byte [ebp + 0x2c]
movzx ecx, al
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], ecx
cmp al, 2
jb 0x4c074c
mov ebx, dword [esp + 0x14]
test dword [ebx + 0x50], 0x80000
jne 0x4c0750
push ebp
call fcn.004d5540
add esp, 4
jmp 0x4c0750
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp]
mov ax, word [ebp + 0x34]
mov dword [esp + 0x24], 0
add word [ecx + 0x9c], ax
mov eax, dword [esp + 0x1c]
test al, 4
je 0x4c0819
mov edx, dword [ebp + 0x348]
mov ecx, dword [edx + 0x2c]
test ecx, 0x1000
jne 0x4c07d3
mov dword [esp + 0x24], 0
test al, 8
je 0x4c0819
mov eax, dword [esp + 0x98]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x2b], 1
je 0x4c0819
test ecx, 0x2000
je 0x4c07c2
test byte [esp + 0x1c], 0x10
mov dword [esp + 0x24], 0
je 0x4c0819
test dword [ebx + 0x50], 0x8000000
mov dword [esp + 0x24], 0
jne 0x4c0819
mov eax, ecx
mov dword [esp + 0x24], 0
and eax, 0x1000
neg eax
sbb al, al
add al, 2
mov byte [ebp + 0x2e], al
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x18]
test byte [eax + 0x1c], 0x80
jne 0x4c0819
mov dword [esp + 0x24], 0
test cl, 0x40
je 0x4c0819
mov eax, dword [esp + 0x1c]
and ecx, 0xffffffbf
and eax, 8
mov dword [edx + 0x2c], ecx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
lea ecx, [ebp + 0x2f8]
mov dword [esp + 0x54], 0
mov ebx, ecx
mov dword [esp + 0x2c], ecx
test edx, edx
jle 0x4c0eeb
nop dword [eax]
movzx eax, byte [ebx + 0x3c]
mov edx, 0xffff8000
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x28], edx
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea ebx, [ecx + eax*8]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4c0893
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4c088f
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4c0883
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x18]
test dword [eax + 0x1c], 0x4000
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x50]
mov dword [esp + 0x48], ecx
jne 0x4c0a05
mov al, byte [eax + 0x2b]
cmp al, 2
je 0x4c0a01
mov ecx, dword [ecx + 0x2c]
test ecx, 0x400
je 0x4c08f8
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4c08db
mov ecx, dword [esp + 0x14]
cmp dword [eax], ecx
je 0x4c08db
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4c08d0
push 0xfffffffffffffff5
push eax
push 0
push 0
push dword [ebx + 0x2c]
push 0xad
push edi
call fcn.004b0e50
add esp, 0x1c
jmp 0x4c0a01
cmp al, 1
je 0x4c0a01
test cl, 0x40
jne 0x4c090c
test byte [esp + 0x1c], 0x20
je 0x4c0916
test byte [ebx + 0x24], 0x50
je 0x4c09d4
cmp byte [ebp + 0x2e], 0
mov ecx, 0x70
je 0x4c092c
mov eax, dword [ebx + 0x2c]
mov ecx, 0x71
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x18]
push ecx
push eax
push edx
push dword [ebx + 0x2c]
push esi
call fcn.0049c2e0
add esp, 0x14
cmp byte [ebp + 0x2e], 0
jne 0x4c09bc
mov eax, dword [esp + 0x18]
cmp word [eax + 0x22], 0x40
jge 0x4c09bc
test byte [eax + 0x1c], 0xe0
jne 0x4c09bc
mov eax, dword [esp + 0x48]
test dword [eax + 0x2c], 0x404000
jne 0x4c09bc
mov edx, dword [ebx + 0x38]
xor esi, esi
mov ecx, dword [ebx + 0x3c]
mov eax, edx
or eax, ecx
je 0x4c0982
shrd edx, ecx, 1
inc esi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x4c0975
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4c09b5
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax + 1], 0
je 0x4c09ae
push 0xfffffffffffffffd
push esi
push eax
push edi
call fcn.004ccd50
add esp, 0x10
jmp 0x4c09b5
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xfd
mov esi, dword [esp + 0x94]
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4c0a01
mov edx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4c0a01
cmp edx, 1
je 0x4c0a01
mov eax, dword [esi]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], 0
mov eax, dword [esp + 0x18]
je 0x4c0a05
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push esi
call fcn.00468c10
add esp, 0x14
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
test dword [edx + 0x2c], 0x200
je 0x4c0a4e
test byte [eax + 0x1c], 0x80
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x34], 0x70
je 0x4c0b1b
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x1c]
jne 0x4c0b1f
test al, 0x20
je 0x4c0b1f
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x28]
test ebp, ebp
js 0x4c0a8e
mov eax, dword [ebx + 0x80]
mov edx, ebx
test eax, eax
mov ecx, ebp
cmovne edx, eax
mov eax, 1
shl eax, cl
mov esi, dword [edx + 0x5c]
test esi, eax
jne 0x4c0a8e
bts esi, ebp
mov dword [edx + 0x5c], esi
cmp ebp, 1
jne 0x4c0a8e
push edx
call fcn.0049c630
add esp, 4
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
test byte [eax + 0x24], 0x10
je 0x4c0ebe
mov eax, dword [ebp]
push 0
push 0x24
push dword [eax]
call fcn.00487b10
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x4c0ad0
mov ecx, dword [ebp + 0x44]
mov dword [ebx], ecx
mov dword [ebx + 8], 0x14
mov dword [ebx + 0xc], 0
mov dword [ebp + 0x44], ebx
add ebx, 0x10
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x38], ebx
test ebx, ebx
je 0x4c0ebe
mov esi, dword [esp + 0x94]
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
inc dword [esi + 0x2c]
inc dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [ebx + 4], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4c0cd3
push 0
push edx
push 0x10000
push 0x4d
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c0d06
mov eax, dword [esp + 0x1c]
cmp byte [ebp + 0x2e], 0
je 0x4c0b50
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
test eax, eax
je 0x4c0b43
cmp eax, ebx
je 0x4c0b43
mov eax, dword [eax + 0x14]
inc esi
test eax, eax
jne 0x4c0b37
mov eax, 0x71
mov dword [ebp + 0x18], esi
jmp 0x4c0bd2
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4c0b68
test al, 0x20
je 0x4c0b68
mov esi, ecx
mov eax, 0x65
jmp 0x4c0bd2
mov esi, dword [esi + 0x28]
mov ebp, esi
mov ecx, dword [esp + 0x94]
lea eax, [esi + 1]
mov dword [ecx + 0x28], eax
test dword [ebx + 0x38], 0x1000
je 0x4c0ba7
mov eax, dword [esp + 0x14]
test dword [eax + 0x50], 0x1000000
jne 0x4c0ba7
mov eax, dword [esp + 0x44]
push eax
push esi
push ebx
push ecx
call fcn.004d4e60
mov ecx, dword [esp + 0xa4]
add esp, 0x10
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4c0bcd
mov edx, dword [esp + 0x44]
test byte [edx + 0x24], 0x10
jne 0x4c0bcd
push edx
push esi
push 0
push eax
push ebx
push ecx
call fcn.004d8930
mov eax, dword [esp + 0x4c]
add esp, 0x18
jmp 0x4c0bd8
mov eax, 0x70
mov dword [esp + 0x34], eax
mov ebp, esi
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], ebp
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x2c]
mov ebp, dword [esp + 0x28]
cmp dword [edi + 0x70], ecx
jg 0x4c0bfd
push ebp
push edx
push esi
push eax
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c0c2f
mov ebx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov dword [eax + ecx*4 + 0x10], ebx
mov byte [eax + ecx*4 + 1], bl
mov ebx, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebp
mov eax, dword [esp + 0x94]
push ebx
mov ebx, eax
push ebx
mov esi, dword [eax + 8]
call fcn.0049a220
mov edx, eax
add esp, 8
test edx, edx
je 0x4c0c81
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4c0c6f
cmp dword [eax + 0x210], 0
jne 0x4c0c81
add dword [edx], 0xffffffff
jne 0x4c0c81
push edx
push dword [edx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x4c0c81
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x2c]
test al, 0xf
je 0x4c0a59
test eax, 0x188002
jne 0x4c0a59
mov eax, dword [esp + 0x10]
test byte [eax + 0x28], 1
jne 0x4c0a59
cmp byte [eax + 0x2f], 2
je 0x4c0a59
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4c0a59
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4c0a59
mov ebp, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 4], 0x10000
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
inc dword [esi + 0x2c]
mov edx, dword [esi + 0x2c]
mov dword [ebx + 8], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4c0d29
push 0
push edx
push 0
push 0x4b
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c0d5c
mov ebp, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
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 + 0x18]
test byte [eax + 0x1c], 0x80
jne 0x4c0df4
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx]
cmp dword [edi + 0x70], ecx
jg 0x4c0d86
push 0
push 1
push edx
push 0x76
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c0db5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push 1
push dword [esi]
call fcn.0049a110
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4c0eae
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x14], 0
mov byte [ecx], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4c0e80
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
jmp 0x4c0ea5
mov esi, dword [eax + 8]
test esi, esi
je 0x4c0e10
nop dword [eax + eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4c0e10
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4c0e00
mov ecx, dword [edi + 0x6c]
movzx edx, word [esi + 0x32]
mov ebx, dword [ebx]
cmp dword [edi + 0x70], ecx
jg 0x4c0e2f
push 0
push edx
push ebx
push 0x76
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c0e5e
mov ebp, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], ebx
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 + 0x94]
push esi
push eax
mov ebx, dword [eax + 8]
call fcn.0049a220
mov edx, eax
add esp, 8
test edx, edx
je 0x4c0eae
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
je 0x4c0e9c
cmp dword [eax + 0x210], 0
jne 0x4c0eae
add dword [edx], 0xffffffff
jne 0x4c0eae
push edx
push dword [edx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x4c0eae
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 - 4], edx
mov byte [eax + ecx*4 - 0x13], 0xf8
mov eax, dword [esp + 0x48]
and dword [eax + 0x2c], 0xffffffbf
mov byte [ebp + 0x2d], 0
mov byte [ebp + 0x2f], 3
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
inc eax
mov edx, dword [esp + 0x20]
add ebx, 0x60
mov esi, dword [esp + 0x94]
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], ebx
cmp eax, edx
jl 0x4c0840
lea ecx, [ebp + 0x2f8]
mov eax, dword [edi + 0x6c]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x57], 0
jne 0x4c112b
xor ebp, ebp
test edx, edx
jle 0x4c1114
nop dword [eax]
cmp dword [esi + 0x24], 0
jne 0x4c112b
mov eax, dword [ecx + 0x50]
mov edx, dword [esp + 0x98]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x58], eax
movzx eax, byte [ecx + 0x3c]
lea eax, [eax + eax*8]
lea ebx, [edx + eax*8]
mov eax, dword [ebx + 0x30]
test al, 0x10
je 0x4c105d
test al, 8
je 0x4c0f96
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x20]
mov esi, dword [ebx + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x4c0f66
push 0
push edx
push esi
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c1052
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4c1052
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x4c0fb3
push 0
push 0
push 0
push 0xf
push edi
call fcn.0045f9a0
add esp, 0x14
mov esi, eax
jmp 0x4c0fe6
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*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 ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x20]
mov ebx, dword [ebx + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x4c1005
push 0
push edx
push ebx
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4c1034
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], ebx
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]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4c1046
mov eax, 0x536fc0
jmp 0x4c104f
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
test eax, 0x404000
je 0x4c10a8
test eax, 0x4000
je 0x4c1084
push ecx
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x44]
push esi
call fcn.004519e0
jmp 0x4c1097
push dword [esp + 0x40]
push dword [esp + 0x40]
push ecx
push ebp
push dword [esp + 0x20]
call fcn.00485a50
mov eax, dword [esp + 0x28]
add esp, 0x14
cmp byte [eax + 0x57], 0
jne 0x4c112b
push dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
push ebx
push dword [esp + 0xa0]
push esi
call fcn.004c48c0
push dword [esp + 0x50]
mov eax, dword [edi + 0x6c]
push dword [esp + 0x50]
mov dword [ebx + 0x20], eax
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
push ebx
push edi
push esi
call fcn.004c11d0
mov ecx, dword [esp + 0x5c]
inc ebp
mov dword [esp + 0x68], eax
add esp, 0x2c
mov dword [esp + 0x40], edx
mov eax, dword [ecx + 0x18]
add ecx, 0x60
mov dword [ebx + 0x1c], eax
mov dword [esp + 0x30], ecx
cmp ebp, dword [esp + 0x20]
jl 0x4c0f10
mov eax, dword [edi + 0x6c]
pop esi
pop edi
mov dword [ebx + 0x3c], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 0x80
ret
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x6c]
pop esi
pop edi
mov dword [ebx + 0x3c], eax
mov eax, ebx
pop ebp
pop ebx
add esp, 0x80
ret
mov ecx, dword [esp + 0x10]
push ecx
push dword [esp + 0x18]
mov ax, word [ecx + 0x24]
mov word [esi + 0x9c], ax
call fcn.004d5820
add esp, 8
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x80
ret