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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x4d1f5e
sub esp, 0x84
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x4d1e7d
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test edx, edx
jne 0x4d1e31
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jne 0x4d1e28
cmp al, 0x30
je 0x4d1c15
mov ebp, 0xa
xor esi, esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], esi
mov byte [esp + 0x2f], al
mov dword [esp + 0x54], ebp
mov dword [esp], ebp
call fcn.004d1500
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov dword [esp + 0x8c], ecx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
jmp 0x4d16c4
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x2f], cl
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x90]
mov ebp, edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x78], edi
mov dword [esp + 0x90], esi
movzx eax, byte [esp + 0xa0]
test al, al
je 0x4d1c0b
movzx esi, byte [esp + 0x2f]
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
je 0x4d1b04
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x4d1ab2
xchg esi, eax
cmp al, 0x39
xchg esi, eax
ja 0x4d1ab2
add esi, 0xffffffd0
xchg esi, eax
movzx eax, al
xchg esi, eax
cmp esi, edx
jae 0x4d1a61
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0x3c]
imul ebx, edx
add ebx, esi
mov ebp, dword [esp + 0x34]
inc ebp
cmp ecx, ebp
je 0x4d1a0f
mov esi, dword [esp + 0x90]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x38]
inc eax
movzx ecx, byte [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x4d1697
cmp dword [0x7279c8], ebx
je 0x4d17cc
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], edx
add esp, 0x84
ret
mov dword [esp + 0x50], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], ebx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov eax, dword [0x7279cc]
mov dword [esp + 8], eax
call fcn.00403130
movzx eax, byte [esp + 0xc]
test al, al
je 0x4d19fe
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x5c], eax
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
test eax, eax
jne 0x4d1919
mov ecx, dword [esp + 0x9c]
test ecx, ecx
jne 0x4d1913
mov edx, dword [esp + 0x54]
cmp edx, 8
jne 0x4d18ab
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
mov edx, 0xa
mov ebx, 1
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
test ecx, ecx
je 0x4d18fd
nop
lea eax, [0x59e6a0]
mov dword [esp], eax
call fcn.00409bc0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1c
mov eax, dword [0x738420]
test eax, eax
jne 0x4d18f0
lea eax, [0x5cd72e]
mov dword [edi], eax
lea eax, [0x600de0]
mov ecx, edi
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
jmp 0x4d1867
lea eax, [0x5cd72e]
call fcn.0044cea0
jmp 0x4d18db
cmp edx, 8
jne 0x4d18af
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x58]
jmp 0x4d1867
mov edx, dword [esp + 0x54]
jmp 0x4d18ad
mov dword [esp + 0x38], edi
test ecx, ecx
jg 0x4d1995
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.004ca4a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x38]
test ebx, ebx
jl 0x4d198f
mov ebp, dword [esp + 0x58]
sub ebx, ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ebx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xbc], eax
add esp, 0x84
ret
mov ebx, dword [esp + 0x58]
jmp 0x4d194b
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004d1550
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x48]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
call fcn.004caca0
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
jmp 0x4d1921
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x4c]
jmp 0x4d1784
mov dword [esp], edi
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
call fcn.004caca0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x8c], eax
jmp 0x4d1739
mov dword [esp + 0x74], ebp
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x98]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x38]
jmp 0x4d1831
xchg esi, eax
cmp al, 0x61
xchg esi, eax
jb 0x4d1acd
xchg esi, eax
cmp al, 0x7a
xchg esi, eax
ja 0x4d1acd
add esi, 0xffffffa9
xchg esi, eax
movzx eax, al
xchg esi, eax
jmp 0x4d170d
xchg esi, eax
cmp al, 0x41
xchg esi, eax
jb 0x4d1afa
xchg esi, eax
cmp al, 0x5a
xchg esi, eax
ja 0x4d1afa
cmp edx, 0x24
jg 0x4d1aed
add esi, 0xffffffc9
xchg esi, eax
movzx eax, al
xchg esi, eax
jmp 0x4d170d
add esi, 0xffffffe3
xchg esi, eax
movzx eax, al
xchg esi, eax
jmp 0x4d170d
mov esi, 0x3f
jmp 0x4d170d
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test edx, edx
jne 0x4d1b4c
mov edi, dword [esp + 0x78]
mov esi, eax
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x58], ebx
mov ebp, ecx
mov ebx, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
xor eax, eax
jmp 0x4d16ef
cmp dword [0x7279c8], edx
je 0x4d1ba0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x54]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
mov dword [esp + 0x74], ecx
mov dword [esp + 0x4c], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, dword [0x7279cc]
mov dword [esp + 8], eax
call fcn.00403130
movzx eax, byte [esp + 0xc]
test al, al
je 0x4d1bfe
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
mov edi, eax
xor eax, eax
mov dword [esp + 0x5c], eax
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov eax, edi
mov ecx, dword [esp + 0x34]
jmp 0x4d1831
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x4c]
jmp 0x4d1b54
movzx esi, byte [esp + 0x2f]
jmp 0x4d16ef
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test edx, edx
je 0x4d1d1f
cmp dword [0x7279c8], edx
je 0x4d1c94
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xa
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
mov dword [esp + 0x78], ecx
mov dword [esp + 0x5c], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, dword [0x7279cc]
mov dword [esp + 8], eax
call fcn.00403130
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4d1cc5
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
jmp 0x4d1c48
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0xa
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x84
ret
movzx ebx, byte [esp + 0xa0]
test bl, bl
je 0x4d1e1e
mov ebp, 0xa
cmp al, 0x58
ja 0x4d1e0b
cmp al, 0x42
jne 0x4d1df8
mov ebp, 2
mov dword [esp + 0x58], ebp
cmp ebp, 2
jne 0x4d1ddf
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test edx, edx
jne 0x4d1d93
xor ebx, ebx
mov ebp, dword [esp + 0x58]
mov esi, ebx
mov ebx, dword [esp + 0x9c]
jmp 0x4d1619
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
cmp ebp, 8
jne 0x4d1de8
xor ebx, ebx
jmp 0x4d1d81
cmp ebp, 0x10
je 0x4d1d58
mov ebx, 1
jmp 0x4d1d81
cmp al, 0x58
jne 0x4d1d4b
mov ebp, 0x10
jmp 0x4d1d4b
cmp al, 0x62
je 0x4d1d46
cmp al, 0x78
je 0x4d1e01
jmp 0x4d1d4b
mov ebp, 8
jmp 0x4d1d34
mov ebp, ebx
xor esi, esi
jmp 0x4d1619
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
movzx ecx, byte [esp + 0xa0]
test cl, cl
je 0x4d1ec3
xor edx, edx
test dl, dl
jne 0x4d15cf
test cl, cl
je 0x4d1ebf
cmp eax, 2
jne 0x4d1eab
mov edx, 1
test dl, dl
jne 0x4d15cf
jmp 0x4d1ed4
cmp eax, 0xa
jne 0x4d1eb7
mov edx, 1
jmp 0x4d1ea1
cmp eax, 0x10
sete dl
jmp 0x4d1ea1
xor edx, edx
jmp 0x4d1ea1
cmp eax, 2
jl 0x4d1ed0
cmp eax, 0x3e
setle dl
jmp 0x4d1e8b
xor edx, edx
jmp 0x4d1e8b
mov dword [esp], eax
call fcn.00407500
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea ecx, [0x597320]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
lea eax, [0x5cb06e]
mov dword [esp], eax
mov dword [esp + 4], 0x16
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a1310
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004075d0
mov eax, dword [esp + 8]
lea ecx, [0x597b60]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427dc0
ud2
call fcn.0044b750
jmp fcn.004d15a0