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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
neg eax
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 8]
sbb eax, eax
lea ecx, [esp + 0x30]
and eax, ecx
push eax
push 3
push ebx
push edi
mov dword [esp + 0x40], 0
mov dword [esp + 0x24], esi
call fcn.1003a130
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xc]
add esp, 0x10
call fcn.10037c50
mov ecx, dword [ebp + 0xc]
mov bl, al
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x1003aae0
call fcn.10037c50
test al, al
je 0x1003aaf5
test bl, bl
je 0x1003aaf9
cmp al, 0x43
jge 0x1003aadc
cmp bl, 0x43
jl 0x1003ab01
mov bl, 0x43
jmp 0x1003ab03
test dword [ecx + 4], 0x800
je 0x1003aafd
mov edx, dword [ecx + 0x14]
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
jmp 0x1003aac6
test bl, bl
je 0x1003ab01
add bl, al
jmp 0x1003ab03
test bl, bl
jne 0x1003ab03
mov bl, 0x41
mov al, byte [edi + 0x13]
inc dword [edi + 0x6c]
mov byte [esp + 0xf], bl
test al, al
jne 0x1003ab1d
inc dword [edi + 0x4c]
mov ebx, dword [edi + 0x4c]
mov dword [esp + 0x10], ebx
jmp 0x1003ab2f
dec al
movzx edx, al
mov byte [edi + 0x13], al
mov eax, dword [edi + edx*4 + 0x1c]
mov dword [esp + 0x10], eax
mov ebx, eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
push ebx
push edx
push edi
call fcn.1003cbd0
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp dword [esp + 0x2c], 5
jne 0x1003af16
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
push edi
call fcn.10037e00
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x18]
mov ebx, dword [eax + 0x74]
lea edx, [ebx + 1]
mov dword [esp + 0x28], eax
mov dword [eax + 0x74], edx
lea eax, [ebx - 1]
add esp, 4
test ebx, eax
jne 0x1003ab9e
lea ecx, [ebx*8 + 4]
push 0
push ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x78]
mov ecx, dword [ecx]
call fcn.100045e0
mov edx, dword [esp + 0x2c]
add esp, 8
mov dword [edx + 0x78], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x78]
test eax, eax
je 0x1003abb0
mov dword [eax + ebx*4], 0xffffffff
mov ecx, dword [ebp + 0x10]
or eax, 0xffffffff
sub eax, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], 0
cmp dword [ebp + 0x14], ecx
je 0x1003ac02
mov al, byte [edi + 0x13]
test al, al
jne 0x1003abdc
inc dword [edi + 0x4c]
mov edx, dword [edi + 0x4c]
mov dword [esp + 0x1c], edx
jmp 0x1003abec
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov ecx, dword [edi + eax*4 + 0x1c]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push edx
push eax
push eax
push 0x55
push esi
call fcn.100242d0
add esp, 0x14
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
mov dword [esp + 0x28], 0
jle 0x1003ae0d
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + ecx]
call fcn.1003ca30
mov ebx, dword [esp + 0x20]
add esp, 4
mov edi, eax
test ebx, ebx
je 0x1003aca6
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + ecx]
call fcn.10039cb0
test eax, eax
je 0x1003aca6
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x58], eax
jg 0x1003ac7c
push ebx
push edi
push ebx
push 0x55
call fcn.10024290
add esp, 0x10
jmp 0x1003acaa
lea ecx, [eax + 1]
mov dword [esi + 0x20], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], 0
mov word [eax], 0x55
jmp 0x1003acaa
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
dec edx
cmp dword [esp + 0x28], edx
jl 0x1003acfe
mov edx, dword [ebp + 0x10]
cmp dword [ebp + 0x14], edx
jne 0x1003acfe
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push 0xfffffffffffffffc
push eax
push ecx
push 0x4e
mov eax, edi
mov ecx, esi
call fcn.10024690
mov edx, dword [esi]
add esp, 0x10
cmp byte [edx + 0x45], 0
jne 0x1003adbf
mov eax, dword [esi + 0x20]
mov cl, byte [esp + 0xf]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
or cl, 0x10
mov byte [eax + edx*4 - 0x11], cl
jmp 0x1003adbf
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x58], ecx
jg 0x1003ad20
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push edi
push eax
push ecx
push 0x4f
call fcn.10024290
add esp, 0x10
jmp 0x1003ad52
lea edx, [ecx + 1]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 4]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x2c]
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], 0
mov word [eax], 0x4f
mov eax, ecx
mov edx, dword [esi]
cmp byte [edx + 0x45], 0
je 0x1003ad6a
mov ecx, dword [esp + 0x20]
mov eax, 0xfffffffc
call fcn.10024cd0
jmp 0x1003ada6
test eax, eax
jns 0x1003ad72
mov eax, dword [esi + 0x20]
dec eax
mov ecx, dword [esi + 4]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
lea ecx, [ecx + eax*4]
je 0x1003ad97
mov edx, dword [esp + 0x20]
push edx
push esi
mov eax, 0xfffffffc
call fcn.10024ec0
add esp, 8
jmp 0x1003ada6
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1003ada6
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xfc
mov eax, dword [esi]
cmp byte [eax + 0x45], 0
jne 0x1003adbf
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov al, byte [esp + 0xf]
mov byte [edx + ecx*4 - 0x11], al
mov esi, dword [esp + 0x34]
test esi, esi
je 0x1003adef
mov edx, dword [ebp + 8]
mov bl, byte [edx + 0x13]
cmp bl, 8
jae 0x1003adef
xor eax, eax
lea ecx, [edx + 0x7c]
cmp dword [ecx + 0xc], esi
je 0x1003ae38
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x1003add7
movzx ecx, bl
mov dword [edx + ecx*4 + 0x1c], esi
inc byte [edx + 0x13]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add dword [esp + 0x24], 0x18
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [edx]
jl 0x1003ac1f
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor ebx, ebx
cmp edi, ebx
je 0x1003ae86
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x58], eax
jg 0x1003ae3e
mov edx, dword [ebp + 0x14]
push ebx
push edx
push edi
push 0x4c
call fcn.10024290
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x1003ae64
mov byte [ecx + 6], 1
jmp 0x1003adef
lea ecx, [eax + 1]
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov byte [eax + 3], bl
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov word [eax], 0x4c
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov eax, dword [ebp + 8]
cmp dword [edx + 0x58], ecx
jg 0x1003aee2
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ebx
push 0xd
call fcn.10024290
mov esi, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x78]
cmp ecx, ebx
je 0x1003aea5
mov ebx, dword [esp + 0x2c]
lea ebx, [ebx*4 + 4]
sub ecx, ebx
mov ebx, dword [esi + 0x20]
mov dword [ecx], ebx
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [edx + 0x60], ecx
test edi, edi
je 0x1003b0c5
mov bl, byte [eax + 0x13]
cmp bl, 8
jae 0x1003b0c5
xor ecx, ecx
lea edx, [eax + 0x7c]
cmp dword [edx + 0xc], edi
je 0x1003af0d
inc ecx
add edx, 0x14
cmp ecx, 0xa
jl 0x1003aec5
movzx edx, bl
mov dword [eax + edx*4 + 0x1c], edi
inc byte [eax + 0x13]
jmp 0x1003b0c5
lea edx, [ecx + 1]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp + 0x10]
mov byte [ecx + 3], bl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], ebx
mov word [ecx], 0xd
jmp 0x1003ae89
mov byte [edx + 6], 1
jmp 0x1003b0c5
mov eax, dword [eax + 0xc]
call fcn.10039cb0
test eax, eax
je 0x1003afab
mov ecx, dword [ebp + 0x10]
mov eax, esi
cmp dword [ebp + 0x14], ecx
jne 0x1003af43
mov edi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, 0x4c
call fcn.10024400
jmp 0x1003afa7
mov edi, dword [esp + 0x10]
mov ebx, 0x4d
call fcn.100243a0
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx + 0x1c]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
mov edx, 0x6c
mov eax, esi
call fcn.10024400
mov edi, dword [ebp + 0x14]
mov eax, esi
call fcn.10024460
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x60], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x20]
test eax, eax
jns 0x1003af8c
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x45], 0
je 0x1003af9b
mov eax, 0x100d87f0
jmp 0x1003afa4
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x2c], 1
jne 0x1003b019
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x58], eax
jg 0x1003afd4
mov edx, dword [ebp + 0x10]
push 0
push edx
push ebx
push 0x26
call fcn.10024290
mov ebx, dword [esp + 0x20]
add esp, 0x10
jmp 0x1003affd
lea ecx, [eax + 1]
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x26
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
push ebx
push edx
push ecx
push 0x46
push esi
call fcn.100242d0
add esp, 0x14
jmp 0x1003b0c2
push 1
lea edx, [esp + 0x13]
push edx
xor eax, eax
push ebx
push 0x30
lea edx, [eax + 1]
mov ecx, esi
call fcn.10024690
add esp, 0x10
cmp dword [esp + 0x30], 0
push 1
jne 0x1003b055
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp + 0x10]
push ecx
push 0x44
mov eax, ebx
mov ecx, esi
call fcn.100247f0
add esp, 0xc
jmp 0x1003b0c2
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push 0x45
xor edx, edx
mov ecx, esi
call fcn.100247f0
mov edi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
add esp, 0xc
mov edx, 0x4c
mov eax, esi
call fcn.10024400
mov edi, dword [ebp + 0x10]
mov eax, esi
call fcn.10024460
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x34]
dec ecx
mov dword [edx + 0x60], ecx
mov ecx, dword [esi + 0x20]
test eax, eax
jns 0x1003b0a7
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x45], 0
je 0x1003b0b6
mov eax, 0x100d87f0
jmp 0x1003b0bf
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [ebp + 8]
cmp dword [esp + 0x10], 0
je 0x1003b0f8
mov bl, byte [eax + 0x13]
cmp bl, 8
jae 0x1003b0f8
mov esi, dword [esp + 0x10]
xor ecx, ecx
lea edx, [eax + 0x7c]
lea ecx, [ecx]
cmp dword [edx + 0xc], esi
je 0x1003b104
inc ecx
add edx, 0x14
cmp ecx, 0xa
jl 0x1003b0e0
movzx ecx, bl
mov dword [eax + ecx*4 + 0x1c], esi
inc byte [eax + 0x13]
call fcn.1003b610
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [edx + 6], 1
call fcn.1003b610
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret