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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebp, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
push edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x28], ebp
mov dword [esi + 0x30], ebp
mov dword [esi + 0x3c], ebp
mov dword [esi + 0x4c], ebp
mov dword [esi + 0x58], ebp
movsx eax, word [edi]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x24], edx
mov edx, dword [esi]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], edx
cmp eax, ecx
jbe 0x1003b8bf
lea ebx, [eax + 3]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esi + 0x2c]
push eax
and ebx, 0xfffffffc
push ebx
push ecx
push 4
push edx
call fcn.10006470
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x28]
add esp, 0x18
cmp eax, ebp
jne 0x1003bb7b
mov dword [esi + 0x24], ebx
movsx eax, word [edi + 2]
mov ecx, dword [esi + 0x18]
add eax, 2
cmp eax, ecx
jbe 0x1003b8ff
lea ebx, [eax + 9]
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x10]
push edx
push eax
and ebx, 0xfffffff8
push ebx
push ecx
mov ecx, dword [esp + 0x44]
push 0x28
push ecx
call fcn.10006470
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x28]
add esp, 0x18
cmp eax, ebp
jne 0x1003bb7b
mov dword [esi + 0x18], ebx
movsx edx, word [edi + 2]
mov dword [esi + 0x1c], edx
movsx eax, word [edi]
push edi
mov dword [esi + 0x28], eax
mov dword [esi + 0x48], 2
mov dword [esi + 0x64], 0xffffffff
call fcn.10002ba0
add esp, 4
cmp eax, 1
jne 0x1003b932
mov dword [esi + 0x48], 0xfffffffe
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ebx, dword [esi + 0x20]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x74], ebp
mov dword [esi + 0x78], ebp
cmp eax, ebp
je 0x1003bb77
mov ecx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
mov dword [esp + 0x18], eax
movsx eax, word [ecx]
lea edx, [ebx + edx*8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 0
mov edi, ebx
cmp ebx, edx
jae 0x1003ba69
lea esp, [esp]
mov cx, word [ebp]
mov eax, dword [esp + 0x20]
mov word [edi + 0xc], cx
mov dx, word [ebp + 4]
mov word [edi + 0xe], dx
mov ecx, dword [ebp]
push eax
push ecx
call fcn.10001230
mov edx, dword [esp + 0x2c]
add eax, edx
mov dword [edi + 0x10], eax
mov dword [edi + 4], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 4]
push eax
push ecx
call fcn.10001230
mov edx, dword [esp + 0x3c]
add eax, edx
mov dword [edi + 0x14], eax
mov dword [edi + 8], eax
mov eax, dword [esp + 0x28]
movsx eax, byte [eax]
and eax, 3
add esp, 0x10
sub eax, 0
je 0x1003ba0c
sub eax, 2
je 0x1003ba02
xor ecx, ecx
mov word [edi], cx
jmp 0x1003ba14
mov edx, 2
mov word [edi], dx
jmp 0x1003ba14
mov eax, 1
mov word [edi], ax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x24], eax
mov dword [eax + 0x20], edi
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x34]
jne 0x1003ba51
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
movsx edx, word [ecx]
inc eax
cmp eax, edx
mov dword [esp + 0x30], eax
jge 0x1003ba51
mov ecx, dword [ecx + 0xc]
movsx eax, word [ecx + eax*2]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
inc dword [esp + 0x18]
add edi, 0x28
add ebp, 8
cmp edi, dword [esp + 0x1c]
jb 0x1003b9a0
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
lea edi, [eax + ecx*4]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + 0xc]
xor ecx, ecx
cmp eax, edi
jae 0x1003ba9d
nop
movsx ecx, cx
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov dword [eax], ecx
mov cx, word [esi]
inc cx
add eax, 4
add esi, 2
movzx ecx, cx
cmp eax, edi
jb 0x1003ba80
xor ebp, ebp
mov eax, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x3c], 4
cmp ebx, edx
jae 0x1003bb77
lea esi, [ebx + 0xc]
jmp 0x1003bac4
mov eax, dword [esp + 0x34]
lea edx, [esi - 0xc]
cmp edx, eax
jne 0x1003baf8
mov edi, dword [eax + 0x24]
movsx ebp, word [eax + 0xc]
movsx ecx, word [edi + 0xc]
movsx edx, word [eax + 0xe]
sub ebp, ecx
movsx ecx, word [edi + 0xe]
sub edx, ecx
mov eax, ebp
mov dword [esp + 0x18], edx
call fcn.1003b720
add edi, 0x28
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], edi
mov dl, byte [esp + 0x3c]
mov eax, dword [esi + 0x14]
movsx ecx, word [esi]
mov byte [esi - 0xa], dl
movsx edi, word [eax + 0xc]
movsx ebx, word [eax + 0xe]
movsx edx, word [esi + 2]
sub edi, ecx
sub ebx, edx
mov edx, ebx
mov eax, edi
call fcn.1003b720
test byte [esi - 0xc], 3
mov dword [esp + 0x3c], eax
mov byte [esi - 9], al
jne 0x1003bb58
mov cl, byte [esi - 0xa]
cmp al, cl
jne 0x1003bb4c
cmp al, 4
jne 0x1003bb58
mov eax, dword [esp + 0x18]
push ebx
push edi
push eax
push ebp
call fcn.10001630
add esp, 0x10
test eax, eax
jne 0x1003bb58
jmp 0x1003bb61
movsx edx, al
movsx eax, cl
neg edx
cmp eax, edx
jne 0x1003bb61
mov ecx, 0x100
or word [esi - 0xc], cx
add esi, 0x28
lea edx, [esi - 0xc]
mov ebp, edi
mov dword [esp + 0x18], ebx
cmp edx, dword [esp + 0x1c]
jb 0x1003bac0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret