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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x108
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [esi + 8]
call fcn.1005ca0a
xor ebx, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x18]
mov ecx, esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x10], ebx
call fcn.1004baab
test byte [ebp + 0x10], 1
mov dword [esi + 0x84], eax
je 0x1003c419
mov ecx, dword [esi + 0x18]
or byte [esi + 0x44], 2
test byte [ecx + 0x71], 0x20
je 0x1003c419
mov ax, word [eax + 0x20]
cmp ax, 0xfffe
jg 0x1003c419
cmp ax, 0xfff6
jl 0x1003c419
movzx eax, word [esi + 0x3a]
cmp eax, 0xb
jg 0x1003c415
push 0xb
pop eax
mov word [esi + 0x3a], ax
mov ecx, esi
call fcn.1003c1e8
mov edi, dword [ebp + 8]
cmp edi, ebx
mov word [esi + 0x3c], ax
jge 0x1003c430
push dword [esi + 0x78]
jmp 0x1003c43a
mov eax, 0x3fffffff
cmp edi, eax
je 0x1003c441
push edi
mov ecx, esi
call fcn.1002fede
cmp edi, ebx
mov dword [ebp + 8], eax
jge 0x1003c47d
mov ecx, dword [esi + 0x48]
mov eax, dword [ecx]
call dword [eax + 0x38]
test eax, eax
je 0x1003c469
mov eax, dword [esi + 0x18]
test byte [eax + 0x6c], 4
jne 0x1003c469
mov ecx, dword [ebp - 0x18]
call fcn.10020cfc
mov edi, eax
jmp 0x1003c46b
xor edi, edi
mov ecx, esi
call fcn.1003b733
movsx ecx, word [esi + 0x3c]
add eax, edi
add ecx, eax
sub dword [ebp + 8], ecx
cmp dword [ebp + 8], ebx
jg 0x1003c485
mov dword [ebp + 8], ebx
mov eax, dword [ebp - 0x38]
sub eax, dword [esi + 0x14]
mov edi, dword [ebp + 0xc]
cmp edi, ebx
mov dword [ebp - 4], eax
jl 0x1003c499
cmp edi, eax
jle 0x1003c49e
mov edi, eax
mov dword [ebp + 0xc], edi
cmp edi, ebx
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x2c], eax
movzx eax, word [esi + 0x3e]
mov dword [ebp - 0x20], eax
jle 0x1003ca21
jmp 0x1003c4b8
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 8]
call fcn.1005cdfd
cmp dword [ebp - 4], edi
mov dword [ebp - 0x14], eax
jl 0x1003c4cf
mov dword [ebp - 4], edi
mov ecx, esi
call fcn.1004ba27
cmp dword [ebp - 4], eax
jl 0x1003c4de
mov dword [ebp - 4], eax
mov edi, dword [ebp - 4]
mov ecx, esi
mov dword [ebp - 0x1c], edi
call fcn.1004ba8b
mov ebx, eax
mov eax, dword [ebx]
test ah, 1
mov dword [ebp - 0x28], eax
je 0x1003c503
and dword [ebp - 8], 0
add dword [esi + 0x34], edi
jmp 0x1003c7ec
push 0
mov ecx, esi
call fcn.1003c0da
test eax, eax
je 0x1003c806
cmp dword [ebp - 4], 0
jle 0x1003c7ec
mov eax, dword [ebp - 0x14]
cmp word [eax], 0
je 0x1003c57e
mov ecx, esi
call fcn.1004be10
test eax, eax
jne 0x1003c53e
mov ecx, dword [ebp - 0x18]
call fcn.1001dcd9
test eax, eax
je 0x1003c57b
cmp dword [ebp - 0x2c], 0
je 0x1003c556
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
cmp ax, 0xd
je 0x1003c57b
cmp ax, 0xa
je 0x1003c57b
movzx edi, word [esi + 0x3a]
push ebx
push dword [esi + 0x80]
mov ecx, esi
call fcn.1003b434
test edi, edi
je 0x1003c57b
movzx eax, word [esi + 0x3a]
cmp edi, eax
je 0x1003c57b
mov dword [ebp - 0x34], 1
mov edi, dword [ebp - 0x1c]
cmp dword [ebp - 4], 0
jle 0x1003c7ec
mov eax, dword [ebp - 0x28]
and eax, 0x80
mov dword [ebp - 0x28], eax
and dword [ebp - 8], 0
mov ebx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [ebx]
xor ecx, ecx
mov cx, word [esi + 0x92]
test cx, cx
mov dword [ebp - 0xc], eax
je 0x1003c5c0
movzx edx, ax
sub edx, 0xa
cmp edx, 3
jbe 0x1003c5c0
mov eax, ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x28], 0
je 0x1003c5d4
push 1
lea eax, [ebp - 0xc]
push eax
call fcn.1006fa2e
mov eax, dword [ebp - 0xc]
cmp ax, 0xfffc
jne 0x1003c68c
mov eax, dword [esi + 0x14]
sub eax, dword [ebp - 4]
or byte [esi + 0x44], 1
add eax, edi
push eax
mov ecx, esi
call fcn.1003b088
test eax, eax
mov dword [ebp - 0x40], eax
je 0x1003c66d
mov al, byte [esi + 0x9b]
shr al, 1
and al, 1
je 0x1003c60a
mov ebx, dword [esi + 0x6c]
jmp 0x1003c60d
mov ebx, dword [esi + 0x74]
test al, al
je 0x1003c616
mov edi, dword [esi + 0x68]
jmp 0x1003c619
mov edi, dword [esi + 0x70]
mov ecx, dword [esi + 0x48]
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [ebp - 0x40]
push eax
xor eax, eax
mov ax, word [esi + 0x38]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.10010953
cmp dword [esi + 0x34], 0
je 0x1003c651
movzx eax, word [esi + 0x3e]
add eax, dword [ebp - 8]
cmp eax, dword [ebp + 8]
jg 0x1003c66d
movzx edx, word [esi + 0x3a]
xor eax, eax
mov ax, word [esi + 0x38]
movzx ecx, ax
sub edx, ecx
mov ecx, dword [ebp - 0x44]
cmp ecx, edx
jle 0x1003c66d
add eax, ecx
mov word [esi + 0x3a], ax
movzx eax, word [esi + 0x3e]
add eax, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp eax, dword [ebp + 8]
jle 0x1003c77b
mov dword [ebp - 0x30], 1
jmp 0x1003c77b
movzx ecx, ax
sub ecx, 7
cmp ecx, 6
jbe 0x1003c73b
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [esi + 0x80]
push eax
call fcn.1003b154
test eax, eax
je 0x1003c806
movzx eax, word [ebp - 0xc]
lea ecx, [eax - 0xa0]
cmp ecx, 0x200c
ja 0x1003c720
cmp eax, 0xa0
je 0x1003c6f7
cmp eax, 0xad
je 0x1003c6f7
cmp eax, 0x2001
jle 0x1003c77b
cmp eax, 0x2003
jle 0x1003c6f7
cmp eax, 0x2011
je 0x1003c6f7
cmp eax, 0x20ac
jne 0x1003c77b
or byte [esi + 0x44], 1
cmp word [ebp - 0xc], 0xad
jne 0x1003c77b
movzx ecx, word [esi + 0x3e]
mov eax, dword [ebp - 8]
add ecx, eax
cmp ecx, dword [ebp + 8]
jl 0x1003c717
cmp dword [esi + 0x34], 0
jne 0x1003c77b
mov dword [ebp - 0x3c], eax
and dword [ebp - 8], 0
jmp 0x1003c77b
cmp word [esi + 0x92], 0
je 0x1003c77b
movzx eax, word [ebx]
sub eax, 0xdc00
cmp eax, 0x3ff
ja 0x1003c77b
jmp 0x1003c71a
cmp ax, 9
jne 0x1003c753
or byte [esi + 0x44], 1
push 9
mov ecx, esi
call fcn.1003c2a9
mov dword [ebp - 8], eax
jmp 0x1003c77b
cmp ax, 0xc
jne 0x1003c9d9
mov eax, dword [ebp - 0x18]
test byte [eax + 0x6e], 8
je 0x1003c9d9
mov ecx, dword [esi + 0x80]
lea eax, [ebp - 8]
push eax
push 0xc
call fcn.1003b154
mov eax, dword [ebp - 0x10]
mov cx, word [esi + 0x3a]
mov edx, dword [ebp - 8]
add word [esi + 0x3e], dx
and eax, 0x1f
inc dword [ebp - 0x10]
lea eax, [eax + eax*2]
shl eax, 1
mov word [ebp + eax - 0x106], cx
mov cx, word [esi + 0x38]
mov word [ebp + eax - 0x104], cx
mov word [ebp + eax - 0x108], dx
mov ax, word [esi + 0x3e]
movzx ecx, ax
cmp ecx, dword [ebp + 8]
jle 0x1003c7c8
test byte [ebp + 0x10], 4
jne 0x1003c80e
cmp dword [esi + 0x34], 0
jg 0x1003c80e
inc dword [esi + 0x34]
add dword [ebp - 0x14], 2
dec dword [ebp - 4]
cmp word [ebp - 0xc], 0x20
mov eax, dword [esi + 0x34]
je 0x1003c7e2
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 4], 0
jg 0x1003c593
sub dword [ebp + 0xc], edi
push edi
mov ecx, esi
call fcn.1004b91e
cmp dword [ebp + 0xc], 0
jg 0x1003c4b5
jmp 0x1003ca21
or eax, 0xffffffff
jmp 0x1003ca52
sub edi, dword [ebp - 4]
sub eax, edx
dec dword [ebp - 0x10]
push edi
mov ecx, esi
mov word [esi + 0x3e], ax
call fcn.1004b91e
test byte [ebp + 0x10], 2
je 0x1003ca2f
and byte [esi + 0x42], 0x9f
cmp word [ebp - 0xc], 9
je 0x1003ca2f
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 0x14]
inc eax
push eax
push 6
mov ecx, esi
mov dword [ebp + 0xc], ebx
call fcn.1004be82
neg eax
mov dword [ebp - 4], eax
jne 0x1003c860
cmp dword [ebp - 0x30], 0
jne 0x1003ca2f
mov ecx, dword [esi + 0x34]
lea edx, [eax + 1]
cmp edx, ecx
jge 0x1003c89f
lea ecx, [esi + 8]
call fcn.1005d7a6
cmp ax, 9
mov dword [ebp - 0xc], eax
jne 0x1003c889
inc dword [ebp - 4]
push 0xffffffffffffffff
mov ecx, esi
call fcn.1004b91e
jmp 0x1003c897
cmp ax, 0xad
jne 0x1003c897
mov ax, word [ebp - 0x3c]
add word [esi + 0x3e], ax
mov eax, dword [ebp - 4]
sub dword [esi + 0x34], eax
jmp 0x1003c8d0
cmp eax, ecx
jne 0x1003c8c8
xor edi, edi
inc edi
cmp eax, edi
jle 0x1003c8c8
lea ecx, [esi + 8]
call fcn.1005d785
cmp ax, 0x20
jne 0x1003c8c8
push edi
mov ecx, esi
call fcn.1004b91e
dec dword [ebp - 4]
mov dword [esi + 0x34], edi
jmp 0x1003c8d0
push ebx
mov ecx, esi
call fcn.1004b9e6
mov eax, dword [ebp - 0x38]
xor ebx, ebx
cmp dword [esi + 0x14], eax
jge 0x1003c96d
lea eax, [ebp - 4]
lea edi, [esi + 8]
push eax
mov ecx, edi
call fcn.1005cdfd
mov ecx, dword [esi + 0x14]
and dword [ebp - 4], ebx
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x18]
push 2
push 2
push ebx
push eax
call fcn.100220b3
test eax, eax
je 0x1003c915
push 0xffffffffffffffff
push 1
mov ecx, esi
call fcn.1004be82
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 4]
add dword [esi + 0x34], ebx
mov ecx, edi
call fcn.1005d785
movzx ecx, ax
lea edx, [ecx - 7]
cmp edx, 6
mov dword [ebp - 0xc], eax
ja 0x1003c96d
add ecx, 0xfffffff8
cmp ecx, 1
jbe 0x1003c96d
cmp ax, 0xd
je 0x1003c944
cmp ax, 7
jne 0x1003c948
or byte [esi + 0x43], 0x80
mov ecx, esi
call fcn.1004b958
shl al, 5
xor al, byte [esi + 0x42]
and al, 0x60
xor byte [esi + 0x42], al
xor eax, eax
mov al, byte [esi + 0x42]
shr eax, 5
and eax, 3
add dword [esi + 0x34], eax
jmp 0x1003ca2f
mov ecx, dword [ebp + 0xc]
sub ecx, dword [esi + 0x14]
je 0x1003c9ca
test ecx, ecx
jle 0x1003c9d0
add ecx, ebx
test ecx, ecx
jle 0x1003c9d0
mov edx, dword [ebp - 0x10]
cmp ecx, edx
jge 0x1003c9d0
cmp ecx, 0x1f
jge 0x1003c9d0
mov ax, word [esi + 0x3e]
dec edx
and edx, 0x1f
lea edi, [edx + edx*2]
sub ax, word [ebp + edi*2 - 0x108]
dec ecx
jne 0x1003c98f
mov word [esi + 0x3e], ax
lea eax, [edx - 1]
and eax, 0x1f
lea eax, [eax + eax*2]
shl eax, 1
mov cx, word [ebp + eax - 0x106]
mov ax, word [ebp + eax - 0x104]
mov word [esi + 0x3a], cx
mov word [esi + 0x38], ax
jmp 0x1003ca2f
cmp dword [ebp - 0x34], 0
je 0x1003ca27
mov dword [ebp - 0x24], 0xfffffffe
jmp 0x1003ca2f
sub edi, dword [ebp - 4]
mov ecx, esi
push edi
call fcn.1004b91e
mov ecx, esi
call fcn.1004b958
add dword [esi + 0x34], eax
mov cl, al
shl cl, 5
xor cl, byte [esi + 0x42]
mov dword [ebp - 4], eax
and cl, 0x60
xor byte [esi + 0x42], cl
cmp word [ebp - 0xc], 0xd
je 0x1003ca1d
mov eax, dword [ebp - 0x18]
test byte [eax + 0x6e], 8
je 0x1003ca16
cmp word [ebp - 0xc], 0xa
je 0x1003ca1d
cmp word [ebp - 0xc], 7
jne 0x1003ca21
or byte [esi + 0x43], 0x80
test byte [ebp + 0x10], 2
je 0x1003ca2f
mov ax, word [ebp - 0x20]
mov word [esi + 0x3e], ax
cmp word [esi + 0x3a], 0
mov ax, word [ebp - 8]
mov word [esi + 0x90], ax
jne 0x1003ca48
mov ecx, esi
call fcn.1003b5ae
mov ecx, esi
call fcn.1003b615
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
leave
ret 0xc