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

Disassembly:
mov ecx, dword [esp + 0xc]
sub esp, 0x44
push ebx
mov edx, ecx
and edx, 0x80000000
xor eax, eax
or eax, edx
push ebp
push esi
jne 0x10019a86
test dword [esp + 0x60], 0x7fff
jne 0x10019eed
mov ebp, dword [esp + 0x6c]
mov edx, ebp
and edx, 0x80000000
xor eax, eax
or eax, edx
mov edx, dword [esp + 0x70]
jne 0x10019aa8
test edx, 0x7fff
jne 0x10019eed
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x60]
mov ebx, edx
and ebx, 0x7fff
mov dword [esp + 0xc], ebx
mov bx, dx
mov dx, word [esp + 0x60]
shr bx, 0xf
shr dx, 0xf
and esi, 0x7fff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
xor bl, dl
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x1c], bl
cmp esi, 0x7fff
jne 0x10019b9c
mov edx, dword [esp + 0x58]
mov esi, ecx
and esi, 0x7fffffff
or edx, esi
jne 0x10019b2c
cmp dword [esp + 0xc], 0x7fff
jne 0x10019c01
mov esi, ebp
and esi, 0x7fffffff
mov edx, eax
or edx, esi
je 0x10019be3
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x80]
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
mov eax, dword [esp + 0x84]
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x68]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x74]
push eax
lea esi, [esp + 0x64]
call fcn.10013e70
add esp, 0x24
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [edi], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 4], edx
mov edx, dword [eax + 0xc]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov edx, dword [esp + 0xc]
cmp edx, 0x7fff
jne 0x10019bc8
mov esi, ebp
and esi, 0x7fffffff
mov edx, eax
or edx, esi
jne 0x10019b2c
movzx dx, bl
xor eax, eax
xor ecx, ecx
shl dx, 0xf
jmp 0x10019c1d
test edx, edx
jne 0x10019c5a
mov edx, eax
or edx, ebp
jne 0x10019c3e
mov eax, esi
cdq
or eax, dword [esp + 0x58]
or edx, ecx
or eax, edx
jne 0x10019bf9
mov eax, dword [esp + 0x54]
or byte [eax + 2], 1
xor eax, eax
mov ecx, 0xc0000000
mov edx, 0xffff
jmp 0x10019c1d
mov eax, dword [esp + 0x54]
or byte [eax + 2], 4
movzx dx, bl
mov esi, 0x8000
imul dx, si
mov esi, 0x7fff
xor eax, eax
mov ecx, 0x80000000
add dx, si
mov dword [edi], eax
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x64]
mov word [esp + 0x60], dx
mov eax, dword [esp + 0x60]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x10]
push ecx
push ebp
push eax
call fcn.100147d0
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
add esp, 0x10
test esi, esi
jne 0x10019c84
mov eax, dword [esp + 0x58]
mov edx, eax
or edx, ecx
je 0x10019bba
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x14]
push edx
push ecx
push eax
call fcn.100147d0
mov esi, dword [esp + 0x20]
add esp, 0x10
sub esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
add esi, 0x3ffe
mov dword [esp + 0xc], esi
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
cmp ebp, ecx
ja 0x10019cd3
mov eax, dword [esp + 0x20]
jb 0x10019cb2
cmp dword [esp + 0x28], eax
ja 0x10019cd3
mov esi, eax
shrd eax, ecx, 1
shl esi, 0x1f
xor ebx, ebx
shr ecx, 1
inc dword [esp + 0xc]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ebp
push eax
push esi
push ebx
push ecx
push edx
call fcn.10013620
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
push ecx
push edx
push eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x50]
push ebp
push edx
mov dword [esp + 0x60], eax
call fcn.10013540
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
push ecx
push esi
push ebx
push edx
push eax
lea eax, [esp + 0x64]
call fcn.10013400
add esp, 0x54
cmp dword [esp + 0x24], 0
jg 0x10019e9d
jl 0x10019d52
cmp dword [esp + 0x20], 0
jae 0x10019e9d
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea ebx, [ebx]
or eax, 0xffffffff
add dword [esp + 0x30], eax
mov ecx, esi
mov edx, ebx
adc dword [esp + 0x34], eax
add ecx, dword [esp + 0x28]
mov eax, ebx
adc eax, ebp
mov dword [esp + 0x40], esi
mov esi, ecx
mov ebx, eax
cmp eax, edx
ja 0x10019d92
jb 0x10019d8b
cmp ecx, dword [esp + 0x40]
jae 0x10019d92
mov eax, 1
jmp 0x10019d94
xor eax, eax
xor ecx, ecx
add dword [esp + 0x20], eax
adc dword [esp + 0x24], ecx
js 0x10019d60
jg 0x10019da8
cmp dword [esp + 0x20], ecx
jb 0x10019d60
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x28]
push ebp
push ecx
push 0
push 0
push ebx
push esi
call fcn.10013620
add esp, 0x18
mov dword [esp + 0x24], edx
and edx, 0x7fffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], edx
ja 0x10019eba
jb 0x10019de7
cmp eax, 4
ja 0x10019eba
lea edx, [esp + 0x40]
push edx
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
push ecx
push edx
push eax
mov eax, dword [esp + 0x38]
push ebp
push eax
call fcn.10013540
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
push ecx
push edx
push 0
push 0
push ebx
push esi
lea eax, [esp + 0x74]
call fcn.10013400
mov eax, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
jg 0x10019e84
jl 0x10019e3e
cmp dword [esp + 0x10], 0
jae 0x10019e84
mov edx, dword [esp + 0x3c]
or ecx, 0xffffffff
add dword [esp + 0x20], ecx
push ebp
lea ebx, [esp + 0x14]
adc dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
push 0
push 0
push edx
mov edx, dword [esp + 0x24]
push ecx
push eax
push edx
lea edx, [esp + 0x58]
call fcn.10013300
mov eax, dword [esp + 0x34]
add esp, 0x20
test eax, eax
jl 0x10019e3e
jg 0x10019e84
cmp dword [esp + 0x10], 0
jb 0x10019e3e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
or ecx, dword [esp + 0x10]
or edx, eax
or ecx, edx
je 0x10019eaa
mov eax, 1
jmp 0x10019eac
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x10019db0
xor eax, eax
or dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
or dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x24]
push ecx
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x30]
push eax
mov al, byte [ecx + 3]
push edx
lea esi, [esp + 0x5c]
call fcn.10014880
add esp, 0x1c
jmp 0x10019b7d
mov eax, dword [esp + 0x54]
or byte [eax + 2], 1
mov eax, dword [0x14df9d0]
mov ecx, dword [0x14df9d4]
mov edx, dword [0x14df9d8]
mov dword [edi], eax
mov eax, dword [0x14df9dc]
pop esi
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
pop ebp
mov dword [edi + 0xc], eax
mov eax, edi
pop ebx
add esp, 0x44
ret