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

Disassembly:
mov ecx, dword [esp + 8]
sub esp, 0x48
push ebx
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx]
push ebp
mov ebp, dword [eax + 0x140]
push esi
mov esi, dword [ebx + 0xe0]
imul esi, esi, 0x2c
add esi, ebp
cmp esi, ecx
push edi
mov dl, 1
jne 0x4193ee
mov byte [ebx + 0x10a], dl
mov esi, dword [esp + 0x68]
mov byte [ebx + 0x10b], dl
cmp byte [esi], 0
jns 0x419409
mov edi, dword [eax + 0x104]
mov dword [esp + 0x5c], edi
jmp 0x419415
mov dword [esp + 0x5c], 0
mov edi, dword [esp + 0x5c]
lea eax, [edi + 2]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x70]
test al, al
je 0x41943f
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
lea eax, [esp + 0x1c]
push eax
push edx
push esi
push ecx
call fcn.004196d0
add esp, 0x14
jmp 0x419459
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x1c]
push edx
push eax
push esi
push ecx
push edi
call fcn.00419600
add esp, 0x18
test eax, eax
jne 0x419468
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x48
ret
movzx bp, byte [esi]
movzx cx, byte [esi + 1]
shl ebp, 8
add ebp, ecx
and ebp, 0x7fff
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, 0x8000
mov dword [esp + 0x1c], ecx
sub ecx, esi
add ecx, eax
mov eax, dword [esp + 0x70]
and ecx, 0xffff
mov byte [esi + 1], cl
shr ecx, 8
test edi, edi
mov byte [esi], cl
mov dword [esp + 0x10], eax
je 0x4194cf
mov ecx, edi
mov edx, ecx
mov esi, eax
sub esi, edi
mov edi, dword [ebx + 0xa0]
add edi, 2
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
push eax
push ebx
call fcn.00412290
mov ecx, eax
and ecx, edx
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jne 0x4194f8
pop edi
pop esi
pop ebp
or eax, ecx
pop ebx
add esp, 0x48
ret
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x6c]
push edx
push eax
push ecx
call fcn.00410050
add esp, 0xc
push eax
push ebx
call fcn.0040e5c0
mov edx, dword [esp + 0x7c]
push edx
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x78]
push edi
push eax
call dword [eax + 0x20]
add esp, 0x20
test eax, eax
jne 0x41953d
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x48
ret
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x28]
push ecx
push edx
push 0
push 0
push 0
push edi
push eax
call dword [eax + 0x24]
mov edx, dword [esp + 0x2c]
mov edi, dword [ebx + 0xa0]
sub ebp, edx
add ebp, esi
mov esi, edx
add edi, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebx + 0xa0]
mov esi, dword [esp + 0x7c]
lea ecx, [esp + 0x44]
push ecx
add edx, eax
push edx
push esi
call dword [esi + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov edx, dword [ebx + 0xa0]
add eax, ecx
add eax, dword [esp + 0x94]
add eax, ebp
and eax, 0xffff
mov byte [edx + 1], al
mov ecx, dword [ebx + 0xa0]
shr eax, 8
mov byte [ecx], al
mov edx, dword [ebx + 0xa0]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
push esi
push ebx
call fcn.004120c0
add esp, 0x3c
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 0xfffffffd
pop ebp
add eax, 2
pop ebx
add esp, 0x48
ret