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

Disassembly:
mov eax, dword [esp + 0x44]
sub eax, 0x100
je 0x4ca3a9
sub eax, 0x100
je 0x4ca307
sub eax, 2
je 0x4ca3e1
jmp 0x4ca3b0
mov eax, dword [esp + 0x4c]
movsx ecx, ax
shr eax, 0x10
adc byte [edi], cl
mov edi, 0x244c89d0
xor byte [ebp - 0x72e7dbbc], cl
dec esp
and al, 0x30
adc byte [edi], cl
mov edi, 0x244c89d0
xor byte [ebp - 0x72e7dbbc], cl
dec esp
and al, 0x30
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x3c], edx
call fcn.004c9f60
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x4ca372
cmp dword [esp + 0x18], eax
jne 0x4ca372
test bl, bl
jne 0x4ca3bb
mov ecx, dword [esp + 0x20]
push 1
sub esp, 0x10
mov edx, esp
push eax
mov dword [edx], ecx
mov ecx, dword [esp + 0x3c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x44]
mov dword [edx + 0xc], ecx
lea edx, [esp + 0x74]
push edx
mov ecx, esi
call fcn.004c9a20
mov bl, 1
jmp 0x4ca3bb
test bl, bl
je 0x4ca3bb
mov edx, dword [esp + 0x20]
push 0
sub esp, 0x10
mov ecx, esp
push eax
lea eax, [esp + 0x74]
mov dword [ecx], edx
mov edx, dword [esp + 0x3c]
push eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 0xc], edx
mov ecx, esi
call fcn.004c9a20
xor bl, bl
jmp 0x4ca3bb
cmp dword [esp + 0x48], 0x1b
jne 0x4ca3bb
lea ecx, [esp + 0x40]
push ecx
call dword [0x5976c4]
push 0
push 0
lea edx, [esp + 0x48]
push 0
push edx
call edi
call dword [0x59776c]
push eax
call 0x5ce1a1
cmp eax, esi
je 0x4ca2e3
jmp 0x4ca496
test bl, bl
je 0x4ca41a
mov ecx, dword [esp + 0x20]
push 0
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], ecx
lea ecx, [esp + 0x70]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
push eax
push ecx
mov ecx, esi
call fcn.004c9a20
xor bl, bl
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x18]
movsx edx, ax
shr eax, 0x10
mov dword [esp + 0x30], edx
lea edx, [esp + 0x30]
movsx eax, ax
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.004c9f60
test eax, eax
jne 0x4ca496
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xec]
cmp eax, ecx
je 0x4ca476
push eax
mov ecx, esi
call fcn.004cb030
push 0xffffffffffffffff
mov ecx, esi
call fcn.004cd150
test eax, eax
je 0x4ca496
mov eax, dword [eax + 0x1c]
push 0
push 0
push 0x4c3
push eax
jmp 0x4ca490
push 0xffffffffffffffff
mov ecx, esi
call fcn.004cd150
test eax, eax
je 0x4ca496
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0x4c3
push ecx
call dword [0x5977c4]
call dword [0x597790]
push 0
call 0x5d3587
lea ecx, [esp + 0x5c]
mov dword [esp + 0xd8], 0xffffffff
call 0x5d48dd
test bl, bl
je 0x4ca4cc
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x20]
push 0
push edx
push eax
call dword [0x5977b0]
cmp ebp, 3
mov dword [esi + 0xdc], 0xffffffff
jne 0x4cad51
mov byte [esi + 0x9c], 1
mov bl, 1
call dword [0x59776c]
test eax, eax
jne 0x4cafe7
mov eax, dword [esi + 0x1c]
push eax
call dword [0x597770]
push eax
call 0x5ce1a1
push esi
lea ecx, [esp + 0x90]
call 0x5d486b
mov ecx, dword [esp + 0x90]
lea edi, [esi + 0x8c]
push 0x201
push ebp
mov ebp, dword [0x597644]
push edi
push ecx
mov dword [esp + 0xe8], 2
call ebp
mov edx, dword [esi + 0x1c]
push 0
push 0x12c
push 2
push edx
call dword [0x5976f8]
call 0x5d357e
push 0
push 0
lea eax, [esp + 0x78]
push 0
push eax
call dword [0x59763c]
call dword [0x59776c]
push eax
call 0x5ce1a1
cmp eax, esi
jne 0x4cacef
mov eax, dword [esp + 0x74]
cmp eax, 0x200
ja 0x4cac30
je 0x4cabd7
sub eax, 0x100
je 0x4cabce
sub eax, 0x13
jne 0x4cac37
cmp dword [esp + 0x78], 2
jne 0x4cac42
test bl, bl
je 0x4cac42
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], edx
push eax
push ecx
call dword [0x597698]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call dword [0x59778c]
test eax, eax
je 0x4cac2a
lea ecx, [esp + 0x5c]
mov byte [esi + 0x7b], 1
push ecx
mov ecx, esi
call fcn.004cb010
mov edx, dword [esi + 0xec]
dec eax
push eax
push edx
mov ecx, esi
call fcn.004c9920
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.004c9e60
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jle 0x4cacef
mov edx, dword [esi + 0xd8]
mov eax, dword [esi + 0x1c]
inc edx
push 1
mov dword [esi + 0xd8], edx
lea edx, [esp + 0x24]
push edx
push eax
call dword [0x5977b0]
jmp 0x4cac42
cmp dword [esp + 0x78], 0x1b
je 0x4cac37
jmp 0x4cac42
mov eax, dword [esp + 0x7c]
movsx ecx, ax
shr eax, 0x10
movsx eax, ax
push eax
push ecx
push edi
call dword [0x59778c]
test eax, eax
je 0x4cac11
test bl, bl
jne 0x4cac42
mov ecx, dword [esp + 0x90]
push 0x201
push 3
push edi
push ecx
call ebp
mov bl, 1
mov byte [esi + 0x79], bl
mov byte [esi + 0x7b], bl
jmp 0x4cac42
cmp bl, 1
jne 0x4cac42
mov edx, dword [esp + 0x90]
push 1
push 3
push edi
push edx
call ebp
xor bl, bl
mov byte [esi + 0x79], bl
mov byte [esi + 0x7b], 0
jmp 0x4cac42
cmp eax, 0x202
je 0x4cac6c
lea eax, [esp + 0x70]
push eax
call dword [0x5976c4]
push 0
push 0
lea ecx, [esp + 0x78]
push 0
push ecx
call dword [0x59763c]
call dword [0x59776c]
push eax
call 0x5ce1a1
cmp eax, esi
je 0x4ca578
jmp 0x4cacef
test bl, bl
je 0x4cac7f
mov edx, dword [esp + 0x90]
push 1
push 3
push edi
push edx
call ebp
mov eax, dword [esp + 0x7c]
mov byte [esi + 0x79], 0
movsx ecx, ax
shr eax, 0x10
movsx eax, ax
push eax
push ecx
push edi
call dword [0x59778c]
test eax, eax
je 0x4cacef
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call fcn.004cb010
mov ecx, dword [esi + 0xec]
dec eax
push eax
push ecx
mov ecx, esi
call fcn.004c9920
lea edx, [esp + 0x20]
mov ecx, esi
push edx
call fcn.004c9e60
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jle 0x4cacef
mov ebx, dword [esi + 0xd8]
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x20]
push 1
inc ebx
push ecx
push edx
mov dword [esi + 0xd8], ebx
call dword [0x5977b0]
mov eax, dword [esi + 0x1c]
push 2
push eax
call dword [0x5976dc]
call dword [0x597790]
push 0
call 0x5d3587
lea ecx, [esp + 0xa0]
mov byte [esi + 0x9c], 0
push ecx
mov ecx, esi
mov byte [esi + 0x7b], 0
mov byte [esi + 0x79], 0
call fcn.004c9e60
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0xa0]
push 1
push edx
push eax
call dword [0x5977b0]
mov dword [esp + 0xd8], 0xffffffff
lea ecx, [esp + 0x8c]
jmp 0x4cafe2
cmp ebp, 2
jne 0x4cafe7
mov byte [esi + 0x9c], 1
mov bl, 1
call dword [0x59776c]
test eax, eax
jne 0x4cafe7
mov ecx, dword [esi + 0x1c]
push ecx
call dword [0x597770]
push eax
call 0x5ce1a1
push esi
lea ecx, [esp + 0x74]
call 0x5d486b
mov edx, dword [esp + 0x74]
mov ebp, dword [0x597644]
lea edi, [esi + 0x7c]
push 0x200
push 3
push edi
push edx
mov dword [esp + 0xe8], 3
call ebp
mov eax, dword [esi + 0x1c]
push 0
push 0x12c
push 2
push eax
call dword [0x5976f8]
call 0x5d357e
push 0
push 0
lea ecx, [esp + 0x48]
push 0