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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x4ca11c
sub esp, 0xd0
mov ebx, dword [esp + 0xd4]
test byte [ebx], al
cmp dword [ebx + 0x2000c], 0x7ffe0001
jl 0x4c980d
mov ebp, dword [ebx + 0x20004]
test ebp, ebp
jne 0x4c9806
xor eax, eax
jmp 0x4ca0f7
xor eax, eax
jmp 0x4ca0a2
mov edx, dword [esp + 0xe8]
cmp edx, 0x11
jge 0x4c9850
add dword [ebx + 0x2000c], 0xffff
mov dword [ebx + 0x20004], 0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
xor esi, esi
jmp 0x4ca01b
lea ebp, [edx - 0xf]
mov dword [esp + 0x90], ebp
nop
nop
mov esi, dword [esp + 0xe4]
mov edi, dword [esi]
mov eax, esi
imul esi, edi, 0x1e35a7bd
shr esi, 0x12
xor ecx, ecx
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x4c], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xbc], edx
xor ecx, ecx
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
jmp 0x4c991d
mov edi, dword [esp + 0x88]
shl edi, 0x10
mov ebp, dword [esp + 0x6c]
shr ebp, 0x10
or edi, ebp
nop
mov ebp, dword [esp + 0x24]
lea eax, [ebp + eax + 5]
imul esi, edi, 0x1e35a7bd
shr esi, 0x12
mov ebp, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ecx
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0xbc], ebp
mov edx, dword [esp + 0xe8]
mov ecx, eax
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x9c], eax
mov eax, 0x20
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x9c]
jmp 0x4c99da
mov edx, dword [esp + 0xec]
cmp edx, ebx
jb 0x4c9ff5
mov ebp, dword [esp + 0x30]
cmp ebp, ebx
ja 0x4c9fec
mov dword [esp + 0x84], ebx
mov ecx, ebx
sub ebx, ebp
mov dword [esp + 0x38], ebx
mov edi, edx
sub edx, ebp
neg edx
sar edx, 0x1f
and edx, ebp
add edx, eax
mov dword [esp + 0xb8], edx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x94]
jmp 0x4c9c5b
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
jmp 0x4c9ced
imul ecx, edx, 0x1e35a7bd
shr ecx, 0x12
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x20]
mov ebx, esi
mov esi, ecx
mov edi, edx
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x50], edi
mov dword [esp + 0x2c], esi
mov edi, dword [esp + 0x20]
sar edi, 5
lea ebx, [ecx + edi]
mov esi, dword [esp + 0x20]
add esi, edi
cmp ebp, ebx
jl 0x4c9ab2
mov dword [esp + 0x54], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], esi
mov ebp, dword [esp + 0x2c]
and ebp, 0x3fff
mov esi, dword [esp + 0xd4]
lea ebx, [esi + ebp*8]
mov edi, dword [ebx + 4]
mov dword [esp + 0x8c], edi
mov ebx, dword [ebx]
mov dword [esp + 0x88], ebx
lea ebx, [esi + ebp*8]
lea ebp, [esi + ebp*8 + 4]
nop
mov edi, dword [esp + 0x54]
lea edi, [ecx + edi + 4]
cmp edx, edi
jb 0x4ca005
mov dword [esp + 0xcc], ebp
mov ebp, dword [esp + 0x28]
cmp edi, ebp
jb 0x4c9ffc
mov edi, dword [esi + 0x2000c]
sub edx, ebp
neg edx
sar edx, 0x1f
and edx, ebp
mov ebp, dword [eax + edx]
mov edx, ebp
mov ebp, dword [esp + 0x50]
mov dword [ebx], ebp
lea ebx, [edi + ecx]
mov edi, dword [esp + 0xcc]
mov dword [edi], ebx
nop
mov ebx, dword [esi + 0x2000c]
mov edi, dword [esp + 0x8c]
sub edi, ebx
mov ebx, ecx
sub ecx, edi
cmp ecx, 0x8000
jg 0x4c99ae
mov edi, dword [esp + 0x88]
cmp ebp, edi
jne 0x4c99ae
jmp 0x4c9939
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0xbc]
cmp edx, ecx
jle 0x4c9afa
jb 0x4c9c12
sub edx, ecx
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0xec]
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ecx, edi
lea edi, [ecx + eax]
mov dword [esp + 0xb4], edi
xor ecx, ecx
jmp 0x4c9b9d
mov edi, dword [esp + 0xd4]
add dword [edi + 0x2000c], edx
mov ecx, ebp
mov ebp, dword [edi + 0x20008]
cmp edx, ebp
ja 0x4c9b79
mov dword [edi + 0x20004], edx
mov ebp, dword [edi + 0x20000]
cmp eax, ebp
je 0x4c9b5d
mov dword [esp + 0x90], ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0xc8], esi
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0045fd70
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ecx
add esp, 0xd0
ret
mov ecx, edx
mov edx, ebp
call fcn.0045f510
mov dword [esi + ebx*4], eax
inc ecx
mov eax, dword [esp + 0xb4]
mov eax, dword [esp + 0xe4]
mov ebx, edi
mov edi, dword [esp + 0xb4]
cmp ecx, edx
jge 0x4c9c06
movzx eax, byte [ecx + edi]
lea edi, [ebx + 1]
cmp ebp, edi
jae 0x4c9b82
mov dword [esp + 0x40], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x90], ecx
lea eax, [0x54d440]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
call fcn.00447650
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 1]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
jmp 0x4c9b82
mov edx, dword [esp + 0xe8]
jmp 0x4c9afa
mov eax, ecx
mov ecx, edx
call fcn.0045f530
mov dword [ebp + esi*4], eax
lea eax, [edi + 1]
mov esi, dword [esp + 0xb8]
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xec]
mov dword [esp + 0x80], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xb8]
mov edi, dword [esp + 0x80]
cmp edi, ebx
jge 0x4c999a
movzx eax, byte [edi + edx]
mov esi, dword [esp + 0x44]
lea ecx, [esi + 1]
mov edx, dword [esp + 0x4c]
cmp edx, ecx
jae 0x4c9c1b
mov dword [esp + 0x88], eax
lea eax, [0x54d440]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00447650
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x88]
jmp 0x4c9c1b
mov eax, dword [esp + 0xe4]
mov esi, ebx
mov ebx, ecx
mov edi, edx
mov ebp, dword [esp + 0xc0]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x24], ecx
sub edx, dword [esi + 0x2000c]
mov dword [esp + 0x8c], edx
mov dword [esp], esi
lea esi, [ecx + 4]
mov dword [esp + 4], esi
lea esi, [edx + 4]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xe8]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0xec]
mov dword [esp + 0x14], eax
call fcn.004ca130
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
lea edx, [ecx + 1]
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x8c]
mov edi, ebp
sub ebp, esi
shl ebx, 0x16
lea ebx, [ebp + ebx + 0x3fffffff]
mov ebp, dword [esp + 0x80]
cmp ebp, edx
jb 0x4c9d7b
mov esi, dword [esp + 0xc4]
jmp 0x4c9dd1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x88], ebx
lea eax, [0x54d440]
mov dword [esp], eax
mov ebx, dword [esp + 0xc4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.00447650
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x24]
mov esi, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xc0], esi
mov dword [esi + ecx*4], ebx
lea ebx, [eax + edi]
mov ecx, ebp
lea ebp, [edi + eax + 4]
mov esi, dword [esp + 0x90]
cmp ebp, esi
jge 0x4c9fb8
mov dword [esp + 0x78], ebp
lea esi, [edi + eax + 3]
lea edi, [edi + eax + 0xb]
mov ebp, dword [esp + 0xe8]
cmp ebp, edi
jb 0x4c9fe3
cmp edi, esi
jb 0x4c9fda
mov dword [esp + 0x8c], ebx
nop
sub ebp, ebx
add ebp, 0xfffffffd
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
mov esi, dword [esp + 0xe4]
movzx edi, byte [ebp + esi]
movzx ebx, byte [esi + ebp + 1]
mov dword [esp + 0x88], ebx
shl ebx, 8
or ebx, edi
movzx edi, byte [esi + ebp + 2]
mov dword [esp + 0x74], edi
shl edi, 0x10
or ebx, edi
movzx edi, byte [esi + ebp + 3]
mov dword [esp + 0x70], edi
shl edi, 0x18
or ebx, edi
mov dword [esp + 0x6c], ebx
imul edi, ebx, 0x1e35a7bd
shr edi, 0x12
and edi, 0x3fff
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0xd4]
lea edi, [ebx + edi*8]
mov ebx, dword [ebx + 0x2000c]
mov dword [esp + 0x84], ebx
movzx ebx, byte [esi + ebp + 4]
mov dword [esp + 0x64], ebx
movzx ebx, byte [esi + ebp + 5]
mov dword [esp + 0x60], ebx
movzx ebx, byte [esi + ebp + 6]
mov dword [esp + 0x5c], ebx
movzx ebp, byte [esi + ebp + 7]
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x6c]
mov dword [edi], esi
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0xd4]
lea edi, [ebp + edi*8 + 4]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x84]
lea ebx, [ebx + ebp + 3]
mov dword [edi], ebx
shr esi, 8
mov edi, dword [esp + 0x88]
shr edi, 0x18
mov ebx, dword [esp + 0x74]
shr ebx, 0x10
or edi, ebx
mov ebx, dword [esp + 0x70]
shr ebx, 8
or edi, ebx
mov ebx, dword [esp + 0x64]
or ebx, edi
mov edi, dword [esp + 0x60]
shl edi, 8
or ebx, edi
mov edi, dword [esp + 0x5c]
shl edi, 0x10
or ebx, edi
mov edi, dword [esp + 0x58]
shl edi, 0x18
or edi, ebx
mov dword [esp + 0x88], edi
shl edi, 0x18
or edi, esi
mov dword [esp + 0x74], edi
nop
imul esi, edi, 0x1e35a7bd
shr esi, 0x12
and esi, 0x3fff
mov ebx, dword [esp + 0xd4]
lea ebp, [ebx + esi*8 + 4]
mov dword [esp + 0xcc], ebp
mov ebp, dword [ebp]
mov dword [esp + 0x84], ebp
lea esi, [ebx + esi*8]
mov ebp, dword [esi]
mov dword [esp + 0x70], ebp
mov ebp, dword [ebx + 0x2000c]
mov dword [esi], edi
mov esi, dword [esp + 0x8c]
lea ebp, [ebp + esi + 4]
mov edi, dword [esp + 0xcc]
mov dword [edi], ebp
mov ebp, dword [ebx + 0x2000c]
mov edi, dword [esp + 0x84]
sub edi, ebp
sub esi, edi
lea ebp, [esi + 4]
cmp ebp, 0x8000
jg 0x4c98bc
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
cmp ebp, esi
je 0x4c9cce
jmp 0x4c98bc
mov eax, dword [esp + 0xe4]
mov ebx, edx
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xe8]
mov edi, ecx
mov ecx, ebp
mov ebp, edi
jmp 0x4c9ac5
mov eax, esi
mov ecx, edi
call fcn.0045f590
mov ecx, edi
mov edx, ebp
call fcn.0045f580
mov eax, ebp
mov ecx, ebx
call fcn.0045f530
mov ecx, ebx
call fcn.0045f510
mov eax, ebp
mov ecx, edi
call fcn.0045f590
mov ecx, edi
call fcn.0045f580
mov dword [ecx + ebx*4], edi
inc esi
mov edi, dword [esp + 0xe4]
mov ebx, eax
mov eax, edi
cmp edx, esi
jle 0x4ca082
movzx edi, byte [esi + eax]
lea eax, [ebx + 1]
cmp ebp, eax
jae 0x4ca00c
mov dword [esp + 0x48], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x88], edi
lea edx, [0x54d440]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.00447650
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0xe8]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x88]
jmp 0x4ca00c
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebp
add esp, 0xd0
ret
mov dword [ebp + 4], esi
inc eax
cmp eax, 0x4000
jge 0x4ca0c8
jae 0x4ca0d7
lea ebp, [ebx + eax*8]
lea esi, [ebx + eax*8 + 4]
mov esi, dword [esi]
sub esi, dword [ebx + 0x2000c]
add esi, 0x8001
test esi, esi
jge 0x4ca09e
xor esi, esi
jmp 0x4ca09e
mov dword [ebx + 0x2000c], 0x8001
jmp 0x4c980d
mov ecx, 0x4000
call fcn.0045f4d0
lea ebp, [ebx + eax*8]
mov dword [ebp], 0
lea ebp, [ebx + eax*8 + 4]
mov dword [ebp], 0
inc eax
cmp eax, 0x4000
jge 0x4ca102
jb 0x4ca0e1
jmp 0x4ca111
mov dword [ebx + 0x2000c], 0x8001
jmp 0x4c980d
mov ecx, 0x4000
call fcn.0045f4d0
nop
call fcn.0045e080
jmp fcn.004c97c0