Function at 0x4d61c0
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 0x4d6216
cmp dword [ebx], 0x40
jl 0x4d6216
mov eax, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esp + 0x9c], ebx
and eax, 0xfeff
jmp 0x4d621d
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 0x4d624f
push 0x40
push str.at_most__d_tables_in_a_join
push ebp
call fcn.0049fe60
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 0x4d6263
mov dword [esp + 0x20], 1
jmp 0x4d6277
cmp edx, 1
jle 0x4d6277
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.0049db10
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
cmp byte [eax + 0x57], 0
je 0x4d62b5
test ecx, ecx
je 0x4d7147
push ecx
push eax
call fcn.0049da00
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.004fd610
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.004db560
add esp, 0x18
cmp dword [esp + 0x20], 0
jne 0x4d641e
mov ecx, dword [esp + 0x10]
test ebx, ebx
je 0x4d63e7
mov al, byte [ebx]
mov byte [ecx + 0x2d], al
test dword [esp + 0x1c], 0x100
je 0x4d63ff
mov eax, dword [esp + 0x14]
test byte [eax + 0x50], 0x10
jne 0x4d63ff
mov byte [ecx + 0x2f], 1
push str.SCAN_CONSTANT_ROW
push 0
push dword [esp + 0x9c]
call fcn.004d0870
mov eax, dword [esp + 0xa4]
add esp, 0xc
jmp 0x4d647e
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.004db5d0
mov eax, dword [esp + 0xa4]
inc ebx
add esp, 0xc
add esi, 0x48
cmp ebx, dword [eax]
jl 0x4d6440
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 0x38]
mov esi, dword [ecx + 0xc]
sub esi, 1
js 0x4d64af
mov edi, ecx
nop dword [eax]
push esi
push edi
push eax
call fcn.0046b370
mov eax, dword [esp + 0xa4]
add esp, 0xc
sub esi, 1
jns 0x4d6490
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
test ebp, ebp
je 0x4d64c3
cmp dword [ebp + 0x3c], 0
je 0x4d64c3
push ebp
push ecx
call fcn.004d60e0
add esp, 8
mov esi, dword [esp + 0x94]
cmp dword [esi + 0x24], 0
jne 0x4d712b
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov dword [esp + 0x40], ecx
lea edx, [ecx + 1]
cmp dword [eax + 0x14], ecx
jle 0x4d65be
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 0x4d6599
mov eax, dword [esi + 0x28]
or eax, dword [esi + 0x2c]
mov ebx, dword [esi]
jne 0x4d6599
cmp dword [esp + 0x20], eax
je 0x4d6568
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], 0x46e590
mov dword [esp + 0x7c], 0x4c0870
test ebx, ebx
je 0x4d6568
lea eax, [esp + 0x74]
push ebx
push eax
call fcn.004d5e10
mov ecx, dword [esp + 0x48]
add esp, 8
cmp word [esp + 0x88], 0
je 0x4d6599
test byte [ebx + 4], 2
je 0x4d657b
mov eax, dword [esp + 0x98]
test byte [eax + 0x2c], 0x40
jne 0x4d6599
push 0x10
push dword [edi + 0x20]
push ebx
push dword [esp + 0xa0]
call fcn.004a4050
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 0x4d64f0
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xa4]
test ecx, 0x100
je 0x4d662f
mov eax, dword [esp + 0x14]
test byte [eax + 0x50], 0x10
je 0x4d65f4
mov ebp, dword [esp + 0x10]
and ecx, 0xfeff
mov eax, 0xfeff
mov dword [esp + 0x1c], ecx
and word [ebp + 0x28], ax
jmp 0x4d6633
push ebx
push dword [esp + 0x3c]
push dword [esp + 0xa0]
push esi
call fcn.00477450
mov ebp, dword [esp + 0x20]
add esp, 0x10
test eax, eax
je 0x4d6617
mov byte [ebp + 0x2f], 1
jmp 0x4d6633
cmp dword [esp + 0xa0], 0
jne 0x4d6633
mov eax, 0x80
mov dword [ebp + 8], ebx
or word [ebp + 0x28], ax
jmp 0x4d6633
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x20], 1
jne 0x4d664b
lea eax, [esp + 0x5c]
push eax
call fcn.004f05c0
add esp, 4
test eax, eax
jne 0x4d66af
lea eax, [esp + 0x5c]
push eax
call fcn.004ebbd0
add esp, 4
test eax, eax
jne 0x4d712b
push eax
push ebp
call fcn.004ef470
mov eax, dword [esp + 0x1c]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x4d712b
cmp dword [ebp + 8], 0
je 0x4d669f
mov ax, word [ebp + 0x34]
inc ax
movzx eax, ax
push eax
push ebp
call fcn.004ef470
mov eax, dword [esp + 0x1c]
add esp, 8
cmp byte [eax + 0x57], 0
jne 0x4d712b
mov eax, 0x100
test word [ebp + 0x28], ax
je 0x4d66af
add word [ebp + 0x34], 0xffe2
cmp dword [ebp + 8], 0
mov ecx, dword [esp + 0x14]
jne 0x4d66d3
mov eax, dword [ecx + 0x20]
and eax, 0x1000
or eax, 0
je 0x4d66d3
push ebp
call fcn.004f01d0
mov ecx, dword [esp + 0x18]
add esp, 4
cmp dword [esi + 0x24], 0
jne 0x4d712b
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
cmp al, 2
jb 0x4d674c
test ebx, ebx
je 0x4d6734
mov eax, dword [esp + 0x1c]
xor edx, edx
and eax, 0x400
cmp dx, ax
jne 0x4d6734
test dword [ecx + 0x50], 0x100
jne 0x4d6734
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.004ee600
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 0x4d674c
mov ebx, dword [esp + 0x14]
test dword [ebx + 0x50], 0x80000
jne 0x4d6750
push ebp
call fcn.004eb540
add esp, 4
jmp 0x4d6750
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 0x4d6819
mov edx, dword [ebp + 0x348]
mov ecx, dword [edx + 0x2c]
test ecx, 0x1000
jne 0x4d67d3
mov dword [esp + 0x24], 0
test al, 8
je 0x4d6819
mov eax, dword [esp + 0x98]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x2b], 1
je 0x4d6819
test ecx, 0x2000
je 0x4d67c2
test byte [esp + 0x1c], 0x10
mov dword [esp + 0x24], 0
je 0x4d6819
test dword [ebx + 0x50], 0x8000000
mov dword [esp + 0x24], 0
jne 0x4d6819
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 0x4d6819
mov dword [esp + 0x24], 0
test cl, 0x40
je 0x4d6819
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 0x4d6eeb
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 0x4d6893
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 0x4d688f
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4d6883
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 0x4d6a05
mov al, byte [eax + 0x2b]
cmp al, 2
je 0x4d6a01
mov ecx, dword [ecx + 0x2c]
test ecx, 0x400
je 0x4d68f8
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4d68db
mov ecx, dword [esp + 0x14]
cmp dword [eax], ecx
je 0x4d68db
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4d68d0
push 0xfffffffffffffff5
push eax
push 0
push 0
push dword [ebx + 0x2c]
push 0xad
push edi
call fcn.004c6e50
add esp, 0x1c
jmp 0x4d6a01
cmp al, 1
je 0x4d6a01
test cl, 0x40
jne 0x4d690c
test byte [esp + 0x1c], 0x20
je 0x4d6916
test byte [ebx + 0x24], 0x50
je 0x4d69d4
cmp byte [ebp + 0x2e], 0
mov ecx, 0x70
je 0x4d692c
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.004b22e0
add esp, 0x14
cmp byte [ebp + 0x2e], 0
jne 0x4d69bc
mov eax, dword [esp + 0x18]
cmp word [eax + 0x22], 0x40
jge 0x4d69bc
test byte [eax + 0x1c], 0xe0
jne 0x4d69bc
mov eax, dword [esp + 0x48]
test dword [eax + 0x2c], 0x404000
jne 0x4d69bc
mov edx, dword [ebx + 0x38]
xor esi, esi
mov ecx, dword [ebx + 0x3c]
mov eax, edx
or eax, ecx
je 0x4d6982
shrd edx, ecx, 1
inc esi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x4d6975
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4d69b5
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 0x4d69ae
push 0xfffffffffffffffd
push esi
push eax
push edi
call fcn.004e2d50
add esp, 0x10
jmp 0x4d69b5
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xfd
mov esi, dword [esp + 0x94]
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4d6a01
mov edx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4d6a01
cmp edx, 1
je 0x4d6a01
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 0x4d6a05
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push esi
call fcn.0047ec10
add esp, 0x14
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
test dword [edx + 0x2c], 0x200
je 0x4d6a4e
test byte [eax + 0x1c], 0x80
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x34], 0x70
je 0x4d6b1b
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x1c]
jne 0x4d6b1f
test al, 0x20
je 0x4d6b1f
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 0x4d6a8e
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 0x4d6a8e
bts esi, ebp
mov dword [edx + 0x5c], esi
cmp ebp, 1
jne 0x4d6a8e
push edx
call fcn.004b2630
add esp, 4
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
test byte [eax + 0x24], 0x10
je 0x4d6ebe
mov eax, dword [ebp]
push 0
push 0x24
push dword [eax]
call fcn.0049db10
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x4d6ad0
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 0x4d6ebe
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 0x4d6cd3
push 0
push edx
push 0x10000
push 0x4d
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d6d06
mov eax, dword [esp + 0x1c]
cmp byte [ebp + 0x2e], 0
je 0x4d6b50
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
test eax, eax
je 0x4d6b43
cmp eax, ebx
je 0x4d6b43
mov eax, dword [eax + 0x14]
inc esi
test eax, eax
jne 0x4d6b37
mov eax, 0x71
mov dword [ebp + 0x18], esi
jmp 0x4d6bd2
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4d6b68
test al, 0x20
je 0x4d6b68
mov esi, ecx
mov eax, 0x65
jmp 0x4d6bd2
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 0x4d6ba7
mov eax, dword [esp + 0x14]
test dword [eax + 0x50], 0x1000000
jne 0x4d6ba7
mov eax, dword [esp + 0x44]
push eax
push esi
push ebx
push ecx
call fcn.004eae60
mov ecx, dword [esp + 0xa4]
add esp, 0x10
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d6bcd
mov edx, dword [esp + 0x44]
test byte [edx + 0x24], 0x10
jne 0x4d6bcd
push edx
push esi
push 0
push eax
push ebx
push ecx
call fcn.004ee930
mov eax, dword [esp + 0x4c]
add esp, 0x18
jmp 0x4d6bd8
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 0x4d6bfd
push ebp
push edx
push esi
push eax
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d6c2f
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.004b0220
mov edx, eax
add esp, 8
test edx, edx
je 0x4d6c81
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4d6c6f
cmp dword [eax + 0x210], 0
jne 0x4d6c81
add dword [edx], 0xffffffff
jne 0x4d6c81
push edx
push dword [edx + 0xc]
call fcn.0049dc30
add esp, 8
jmp 0x4d6c81
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 0x4d6a59
test eax, 0x188002
jne 0x4d6a59
mov eax, dword [esp + 0x10]
test byte [eax + 0x28], 1
jne 0x4d6a59
cmp byte [eax + 0x2f], 2
je 0x4d6a59
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4d6a59
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4d6a59
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 0x4d6d29
push 0
push edx
push 0
push 0x4b
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d6d5c
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 0x4d6df4
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx]
cmp dword [edi + 0x70], ecx
jg 0x4d6d86
push 0
push 1
push edx
push 0x76
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d6db5
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.004b0110
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4d6eae
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x14], 0
mov byte [ecx], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4d6e80
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
jmp 0x4d6ea5
mov esi, dword [eax + 8]
test esi, esi
je 0x4d6e10
nop dword [eax + eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4d6e10
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4d6e00
mov ecx, dword [edi + 0x6c]
movzx edx, word [esi + 0x32]
mov ebx, dword [ebx]
cmp dword [edi + 0x70], ecx
jg 0x4d6e2f
push 0
push edx
push ebx
push 0x76
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d6e5e
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.004b0220
mov edx, eax
add esp, 8
test edx, edx
je 0x4d6eae
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
je 0x4d6e9c
cmp dword [eax + 0x210], 0
jne 0x4d6eae
add dword [edx], 0xffffffff
jne 0x4d6eae
push edx
push dword [edx + 0xc]
call fcn.0049dc30
add esp, 8
jmp 0x4d6eae
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 0x4d6840
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 0x4d712b
xor ebp, ebp
test edx, edx
jle 0x4d7114
nop dword [eax]
cmp dword [esi + 0x24], 0
jne 0x4d712b
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 0x4d705d
test al, 8
je 0x4d6f96
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x20]
mov esi, dword [ebx + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x4d6f66
push 0
push edx
push esi
push 0xa
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d7052
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 0x4d7052
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x4d6fb3
push 0
push 0
push 0
push 0xf
push edi
call fcn.00475980
add esp, 0x14
mov esi, eax
jmp 0x4d6fe6
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 0x4d7005
push 0
push edx
push ebx
push 0xa
push edi
call fcn.00475980
add esp, 0x14
jmp 0x4d7034
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 0x4d7046
mov eax, 0x5751d0
jmp 0x4d704f
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 0x4d70a8
test eax, 0x4000
je 0x4d7084
push ecx
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x44]
push esi
call fcn.004679c0
jmp 0x4d7097
push dword [esp + 0x40]
push dword [esp + 0x40]
push ecx
push ebp
push dword [esp + 0x20]
call fcn.0049ba50
mov eax, dword [esp + 0x28]
add esp, 0x14
cmp byte [eax + 0x57], 0
jne 0x4d712b
push dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
push ebx
push dword [esp + 0xa0]
push esi
call fcn.004da8c0
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.004d71d0
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 0x4d6f10
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.004eb820
add esp, 8
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x80
ret