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

Disassembly:
push 0xffffffffffffffff
push 0x52eb2f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
call fcn.004c6990
test al, al
jne 0x4c70ad
mov esi, dword [esp + 0x80]
mov al, byte [esp + 0x84]
push 0
mov ecx, esi
mov byte [esi], al
call fcn.00402fc0
mov edi, 0x570678
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x570678
mov ecx, esi
call fcn.00403010
jmp 0x4c79bb
mov cl, byte [esp + 0x84]
push 0
mov byte [esp + 0x34], cl
lea ecx, [esp + 0x34]
call fcn.00402fc0
mov dl, byte [esp + 0x84]
push 0
lea ecx, [esp + 0x44]
mov dword [esp + 0x7c], 1
mov byte [esp + 0x44], dl
call fcn.00402fc0
mov al, byte [esp + 0x84]
mov esi, dword [esp + 0x88]
test al, al
mov byte [esp + 0x78], 2
je 0x4c711f
test esi, esi
jle 0x4c711f
mov ebx, esi
mov edi, 0x56ea50
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56ea50
lea ecx, [esp + 0x38]
call fcn.00429ed0
dec ebx
jne 0x4c70fe
mov edi, 0x566ae4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x566ae4
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov ecx, ebp
call fcn.004c6e90
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.00403010
lea eax, [esp + 0x40]
push eax
call fcn.004c7a10
mov ecx, dword [0x5347a8]
add esp, 4
lea edx, [esp + 0x40]
push ecx
push 0
push edx
lea ecx, [esp + 0x3c]
call fcn.0045eee0
lea ecx, [esp + 0x18]
call fcn.004c66f0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x80], 3
call fcn.004c6bc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x7c], 4
call fcn.004c8130
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], 3
call fcn.004c8180
lea ecx, [esp + 0x18]
call fcn.004c6990
test al, al
je 0x4c7271
mov bl, 5
lea edx, [esp + 0x60]
lea ecx, [esp + 0x18]
push edx
call fcn.004c81e0
push eax
lea eax, [esp + 0x54]
push 0x565444
push eax
mov byte [esp + 0x84], bl
call fcn.00433470
add esp, 0xc
mov ecx, dword [0x5347a8]
mov byte [esp + 0x78], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x3c]
call fcn.0045eee0
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0x7c], bl
call fcn.00402fc0
push 1
lea ecx, [esp + 0x64]
mov byte [esp + 0x7c], 3
call fcn.00402fc0
lea edx, [esp + 0x18]
lea eax, [esp + 0x28]
push edx
push eax
mov ecx, ebp
call fcn.004c6bc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x7c], 7
call fcn.004c8130
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], 3
call fcn.004c8180
lea ecx, [esp + 0x18]
call fcn.004c6990
test al, al
jne 0x4c71d3
mov ecx, ebp
call fcn.004c6e70
test eax, eax
jne 0x4c72b7
mov ecx, ebp
call fcn.004c6eb0
test eax, eax
jne 0x4c72b7
mov edi, 0x56ea4c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56ea4c
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov al, byte [esp + 0x84]
test al, al
je 0x4c741b
jmp 0x4c73fd
mov edi, 0x566ab4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x566ab4
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov ecx, ebp
call fcn.004c6eb0
test eax, eax
jne 0x4c7481
mov ecx, ebp
call fcn.004c6e70
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x44]
push ebx
call fcn.004030d0
test al, al
je 0x4c7329
mov edi, dword [esp + 0x44]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.004030b0
lea eax, [esp + 0x40]
push eax
call fcn.004c7a10
mov ecx, dword [0x5347a8]
add esp, 4
lea edx, [esp + 0x40]
push ecx
push 0
push edx
lea ecx, [esp + 0x3c]
call fcn.0045eee0
mov edi, 0x56ea48
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56ea48
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov ecx, ebp
call fcn.004c6e90
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x44]
push ebp
call fcn.004030d0
test al, al
je 0x4c73b0
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.004030b0
lea ecx, [esp + 0x40]
push ecx
call fcn.004c7a10
mov edx, dword [0x5347a8]
add esp, 4
lea eax, [esp + 0x40]
lea ecx, [esp + 0x30]
push edx
push 0
push eax
call fcn.0045eee0
mov edi, 0x566ab4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x566ab4
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov al, byte [esp + 0x84]
test al, al
je 0x4c741b
mov edi, 0x5667e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5667e0
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov esi, dword [esp + 0x80]
mov cl, byte [esp + 0x30]
push 0
mov byte [esi], cl
mov ecx, esi
call fcn.00402fc0
mov edx, dword [0x5347a8]
lea eax, [esp + 0x30]
push edx
push 0
push eax
mov ecx, esi
call fcn.0040ed00
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 1
mov byte [esp + 0x78], 2
call fcn.004c8180
push 1
lea ecx, [esp + 0x44]
mov byte [esp + 0x7c], 1
call fcn.00402fc0
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x7c], 0
call fcn.00402fc0
jmp 0x4c79bb
mov bl, byte [esp + 0x84]
test bl, bl
je 0x4c74aa
mov edi, 0x5667e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5667e0
lea ecx, [esp + 0x38]
call fcn.00429ed0
mov ecx, ebp
call fcn.004c6e70
test eax, eax
je 0x4c761d
test bl, bl
je 0x4c7536
test esi, esi
jl 0x4c7536
lea ebx, [esi + 1]
mov edi, 0x56ea50
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x5347a8]
sub ecx, edx
cmp ecx, esi
ja 0x4c74ea
call fcn.004b815e
test esi, esi
jbe 0x4c7533
mov edx, dword [esp + 0x38]
push 0
lea ecx, [esp + 0x34]
lea ebp, [edx + esi]
push ebp
call fcn.004030d0
test al, al
je 0x4c752f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
push ebp
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, 0x56ea50
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.004030b0
mov ebp, dword [esp + 0x10]
dec ebx
jne 0x4c74c4
mov ecx, ebp
call fcn.004c6e70
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x44]
push ebx
call fcn.004030d0
test al, al
je 0x4c757b
mov edi, dword [esp + 0x44]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
call fcn.004030b0
lea ecx, [esp + 0x40]
push ecx
call fcn.004c7a10
mov edx, dword [0x5347a8]
add esp, 4
lea eax, [esp + 0x40]
lea ecx, [esp + 0x30]
push edx
push 0
push eax
call fcn.0045eee0
mov al, byte [esp + 0x84]
test al, al
je 0x4c7616
mov edi, 0x5667e0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
mov ecx, dword [0x5347a8]
sub ecx, edx
cmp ecx, edi
ja 0x4c75d0
call fcn.004b815e
test edi, edi
jbe 0x4c7616
mov edx, dword [esp + 0x38]
push 0
lea ecx, [esp + 0x34]
lea ebx, [edx + edi]
push ebx
call fcn.004030d0
test al, al
je 0x4c7616
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, edi
mov edx, ecx
mov esi, 0x5667e0
mov edi, eax
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.004030b0
mov esi, dword [esp + 0x88]
lea ecx, [esp + 0x20]
call fcn.004c66f0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x28]
push eax
push ecx
mov ecx, ebp
call fcn.004c6e40
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x7c], 9
call fcn.004c6740
mov bl, 8
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], bl
call fcn.004c6970
lea ecx, [esp + 0x20]
call fcn.004c6990
test al, al
je 0x4c76dd
lea edi, [esi + 1]
mov edx, dword [esp + 0x84]
push edi
lea eax, [esp + 0x64]
push edx
push eax
lea ecx, [esp + 0x2c]
call fcn.004c7040
mov ecx, dword [0x5347a8]
mov byte [esp + 0x78], 0xa
push ecx
push 0
push eax
lea ecx, [esp + 0x3c]
call fcn.0045eee0
push 1
lea ecx, [esp + 0x64]
mov byte [esp + 0x7c], bl
call fcn.00402fc0
lea edx, [esp + 0x20]
lea eax, [esp + 0x28]
push edx
push eax
mov ecx, ebp
call fcn.004c6e40
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x7c], 0xb
call fcn.004c6740
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], bl
call fcn.004c6970
lea ecx, [esp + 0x20]
call fcn.004c6990
test al, al
jne 0x4c7665
mov al, byte [esp + 0x84]
test al, al
je 0x4c7760
test esi, esi
jle 0x4c7760
mov ebx, esi
mov edi, 0x56ea50
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x5347a8]
sub ecx, edx
cmp ecx, esi
ja 0x4c7714
call fcn.004b815e
test esi, esi
jbe 0x4c775d
mov edx, dword [esp + 0x38]
push 0
lea ecx, [esp + 0x34]
lea ebp, [edx + esi]
push ebp
call fcn.004030d0
test al, al
je 0x4c7759
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
push ebp
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, 0x56ea50
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.004030b0
mov ebp, dword [esp + 0x10]
dec ebx
jne 0x4c76ee
mov edi, 0x56ea48
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
mov eax, dword [0x5347a8]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c7785
call fcn.004b815e
test esi, esi
jbe 0x4c77d0
mov eax, dword [esp + 0x38]
push 0
lea ecx, [esp + 0x34]
lea ebp, [eax + esi]
push ebp
call fcn.004030d0
test al, al
je 0x4c77cc
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
mov esi, 0x56ea48
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ebp
mov byte [ecx + ebp], 0
mov ebp, dword [esp + 0x10]
mov ecx, ebp
call fcn.004c6e90
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x44]
push ebp
call fcn.004030d0
test al, al
je 0x4c7817
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x40]
push ecx
call fcn.004c7a10
mov edx, dword [0x5347a8]
add esp, 4
xor ebx, ebx
lea eax, [esp + 0x40]
push edx
push ebx
push eax
lea ecx, [esp + 0x3c]
call fcn.0045eee0
mov edi, 0x566ab4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x5347a8]
sub ecx, edx
cmp ecx, esi
ja 0x4c7862
call fcn.004b815e
cmp esi, ebx
jbe 0x4c78a8
mov edx, dword [esp + 0x38]
push ebx
lea ecx, [esp + 0x34]
lea ebp, [edx + esi]
push ebp
call fcn.004030d0
test al, al
je 0x4c78a8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, 0x566ab4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], ebp
mov byte [eax + ebp], 0
mov al, byte [esp + 0x84]
test al, al
je 0x4c791e
mov edi, 0x5667e0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x38]
repne scasb al, byte es:[edi]
mov eax, dword [0x5347a8]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4c78d8
call fcn.004b815e
cmp esi, ebx
jbe 0x4c791e
mov ecx, dword [esp + 0x38]
push ebx
lea ebp, [ecx + esi]
lea ecx, [esp + 0x34]
push ebp
call fcn.004030d0
test al, al
je 0x4c791e
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ecx, esi
mov esi, 0x5667e0
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], ebp
mov byte [eax + ebp], 0
mov esi, dword [esp + 0x80]
mov cl, byte [esp + 0x30]
lea eax, [esp + 0x30]
mov byte [esi], cl
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov edx, dword [0x5347a8]
mov ecx, esi
push edx
push ebx
push eax
call fcn.0040ed00
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], 1
call fcn.004c6970
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 2
call fcn.004c8180
mov ecx, dword [esp + 0x44]
cmp ecx, ebx
je 0x4c798b
mov al, byte [ecx - 1]
test al, al
je 0x4c7981
cmp al, 0xff
je 0x4c7981
dec al
mov byte [ecx - 1], al
jmp 0x4c798b
dec ecx
push ecx
call fcn.005096eb
add esp, 4
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x44], ebx
cmp ecx, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
je 0x4c79bb
mov al, byte [ecx - 1]
test al, al
je 0x4c79b1
cmp al, 0xff
je 0x4c79b1
dec al
mov byte [ecx - 1], al
jmp 0x4c79bb
dec ecx
push ecx
call fcn.005096eb
add esp, 4
mov ecx, dword [esp + 0x70]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 0xc