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

Disassembly:
sub esp, 0x70
mov ecx, dword [esp + 0x78]
push ebx
push ebp
xor ebp, ebp
push esi
mov esi, dword [esp + 0x80]
push edi
xor edi, edi
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], ebp
mov dword [ecx + 0xc], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x2c], ebp
mov al, byte [esi]
cmp al, 0x20
je 0x1000908d
cmp al, 9
jne 0x10009090
inc esi
jmp 0x10009083
cmp byte [esi], 0
mov dword [esp + 0x84], esi
je 0x10009545
movzx edx, byte [esi]
xor ebx, ebx
push edx
mov edi, esi
mov dword [esp + 0x18], ebx
call fcn.1006efb3
add esp, 4
test eax, eax
je 0x100090d8
movsx ecx, byte [edi]
movzx edx, byte [edi + 1]
inc edi
lea eax, [ebx + ebx*4]
push edx
lea ebx, [ecx + eax*2 - 0x30]
call fcn.1006efb3
add esp, 4
test eax, eax
jne 0x100090b8
mov dword [esp + 0x14], ebx
cmp edi, esi
mov cl, byte [edi]
mov byte [esp + 0x12], cl
jbe 0x1000915d
cmp cl, 0x2f
je 0x100090fa
cmp cl, 0x3a
je 0x100090fa
cmp cl, 0x2e
je 0x100090fa
cmp cl, 0x2d
je 0x100090fa
test cl, cl
jne 0x1000915d
cmp ebp, 5
mov dword [esp + 0x30], 0
jge case.default.0x100091d5
mov dword [esp + ebp*4 + 0x50], ebx
mov edx, dword [esp + 0x4c]
mov eax, edi
sub eax, esi
mov dword [esp + edx*4 + 0x68], eax
mov ebp, dword [esp + 0x4c]
inc ebp
test cl, cl
mov dword [esp + 0x4c], ebp
jne 0x10009136
mov esi, edi
mov dword [esp + 0x84], esi
jmp 0x100091d1
mov al, byte [edi + 1]
cmp al, 0x20
lea esi, [edi + 1]
mov dword [esp + 0x84], esi
je 0x10009150
cmp al, 9
jne 0x100091d1
nop
mov al, byte [esi]
cmp al, 0x20
je 0x1000915a
cmp al, 9
jne 0x1000912a
inc esi
jmp 0x10009150
mov eax, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x17]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
mov ebx, esi
mov dword [esp + 0x34], 0
call fcn.10008e70
add esp, 0x10
test eax, eax
mov dword [esp + 0x30], eax
jne 0x100091c2
cmp ebp, 5
jge case.default.0x100091d5
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x88]
push edx
lea edi, [esp + 0x54]
call fcn.10007ea0
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x54]
add esp, 8
mov byte [esp + 0x12], al
cmp dword [esp + 0x30], 4
ja case.default.0x100091d5
mov cl, byte [esp + 0x12]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x10009738]
cmp cl, 0x3a
je 0x100091f3
cmp cl, 0x2e
jne 0x10009362
cmp ebp, 4
jne 0x10009374
mov eax, dword [esp + 0x1c]
test eax, eax
jne case.default.0x100091d5
mov eax, dword [esp + 0x24]
test eax, eax
jne case.default.0x100091d5
mov ecx, dword [esp + 0x88]
dec ebp
mov dword [esp + 0x4c], ebp
mov al, byte [esp + ebp*4 + 0x50]
mov byte [ecx + 7], al
movzx edx, byte [esi]
push edx
mov dword [esp + 0x20], 1
call fcn.1006efb3
add esp, 4
test eax, eax
je 0x1000930e
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x88]
push ecx
lea edi, [esp + 0x54]
call fcn.10007ea0
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x90]
add esp, 8
dec ebp
cmp al, 0x3a
mov dword [esp + 0x4c], ebp
mov dl, byte [esp + ebp*4 + 0x50]
mov byte [ebx + 8], dl
je 0x10009276
cmp al, 0x2e
jne 0x10009307
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x88]
push ecx
lea edi, [esp + 0x54]
call fcn.10007ea0
mov ebp, dword [esp + 0x54]
add esp, 8
dec ebp
cmp al, 0x2e
mov dword [esp + 0x4c], ebp
mov dl, byte [esp + ebp*4 + 0x50]
mov byte [ebx + 9], dl
je 0x100092ab
cmp al, 0x3a
je 0x100092ab
cmp al, 0x2d
jne 0x10009307
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x88]
push ecx
lea edi, [esp + 0x54]
call fcn.10007ea0
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + ebp*4 + 0x6c]
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp edx, 6
jae 0x100092eb
mov eax, 6
sub eax, edx
add edx, eax
mov edi, edi
lea ecx, [ecx + ecx*4]
shl ecx, 1
dec eax
jne 0x100092e0
cmp edx, 6
jbe 0x100092ff
lea esi, [edx - 6]
mov eax, 0xcccccccd
mul ecx
shr edx, 3
dec esi
mov ecx, edx
jne 0x100092f0
dec ebp
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x4c], ebp
mov esi, dword [esp + 0x84]
cmp byte [esi], 0
mov edi, 1
jne 0x100090a0
cmp ebp, 3
mov ebx, dword [esp + 0x20]
je 0x10009341
test ebx, ebx
je 0x10009549
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10009549
cmp ebp, edi
jne 0x10009549
mov esi, dword [esp + 0x88]
test ebp, ebp
jg 0x100095ae
test edi, edi
jne 0x1000970d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret
cmp cl, 0x2f
je 0x1000936c
cmp cl, 0x2d
jne 0x10009374
mov dword [esp + 0x24], 1
cmp ebp, 3
jl 0x10009381
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x18]
test eax, eax
mov ecx, 1
jne 0x1000939c
mov edx, dword [esp + 0x88]
mov byte [edx + 6], cl
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x100093c3
cmp ebp, ecx
jne 0x1000930e
cmp dword [esp + 0x68], 4
jb 0x1000930e
mov dword [esp + 0x8c], ecx
jmp 0x1000930e
test eax, eax
jne 0x1000930e
mov edx, dword [esp + 0x88]
dec ebp
mov dword [esp + 0x4c], ebp
mov al, byte [esp + ebp*4 + 0x50]
mov byte [edx + 6], al
mov dword [esp + 0x18], ecx
jmp 0x1000930e
mov edx, dword [esp + 0x28]
lea eax, [edx + esi]
call fcn.10007e50
mov esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x84], esi
jne 0x10009429
test ebp, ebp
jle case.default.0x100091d5
mov ecx, dword [esp + 0x88]
dec ebp
mov dword [esp + 0x4c], ebp
mov al, byte [esp + ebp*4 + 0x50]
mov byte [ecx + 7], al
mov dword [esp + 0x1c], 1
jmp 0x10009430
mov ecx, dword [esp + 0x88]
mov al, byte [ecx + 7]
cmp al, 0xc
jae 0x1000930e
add al, 0xc
mov byte [ecx + 7], al
jmp 0x1000930e
mov ecx, dword [esp + 0x28]
lea eax, [ecx + esi]
call fcn.10007e50
mov esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x84], esi
jne 0x10009487
test ebp, ebp
jle case.default.0x100091d5
mov ecx, dword [esp + 0x88]
dec ebp
mov dword [esp + 0x4c], ebp
mov dl, byte [esp + ebp*4 + 0x50]
mov byte [ecx + 7], dl
mov dword [esp + 0x1c], 1
jmp 0x1000948e
mov ecx, dword [esp + 0x88]
mov al, byte [ecx + 7]
cmp al, 0xc
jne 0x1000949e
mov byte [ecx + 7], 0
jmp 0x1000930e
ja case.default.0x100091d5
jmp 0x1000930e
mov eax, dword [esp + 0x28]
add eax, esi
call fcn.10007e50
mov cl, byte [esp + 0x13]
mov esi, eax
mov eax, dword [esp + 0x88]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov dword [esp + 0x84], esi
jne case.default.0x100091d5
mov ecx, 1
mov dword [esp + 0x20], ecx
mov byte [eax + 6], cl
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x8c], 3
jne 0x1000930e
test ebp, ebp
mov dword [esp + 0x18], 1
jle 0x1000930e
dec ebp
mov dword [esp + 0x4c], ebp
mov dl, byte [esp + ebp*4 + 0x50]
mov byte [eax + 6], dl
jmp 0x1000930e
mov eax, dword [esp + 0x28]
add eax, esi
call fcn.10007e50
mov ecx, dword [esp + 0x88]
mov dl, byte [esp + 0x13]
mov esi, eax
mov dword [esp + 0x84], esi
mov byte [ecx + 3], dl
mov dword [esp + 0x38], 1
jmp 0x1000930e
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x3c]
push eax
call fcn.10006bc0
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x3c]
mov cx, word [esp + 0x44]
mov dx, word [esp + 0x40]
add esp, 4
test eax, eax
mov word [esi + 4], cx
mov word [esi], dx
jne 0x1000957d
mov al, byte [esp + 0x3f]
mov byte [esi + 3], al
test ebx, ebx
jne 0x10009588
mov cl, byte [esp + 0x3e]
mov byte [esi + 2], cl
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10009348
mov eax, dword [esp + 0x34]
test eax, eax
mov eax, 1
jne 0x100095a6
movzx eax, byte [esp + 0x42]
mov byte [esi + 6], al
jmp 0x10009348
cmp ebp, 1
jne 0x1000967d
test ebx, ebx
je 0x100095d9
mov ax, word [esp + 0x50]
mov edx, dword [esp + 0x68]
mov word [esi], ax
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], edx
jne 0x1000963a
mov byte [esi + 6], 1
jmp 0x1000963a
mov edi, dword [esp + 0x50]
push 0x64
push edi
call fcn.1006ee6d
mov ecx, dword [esp + 0x70]
add esp, 8
cmp ecx, 6
je 0x10009624
cmp ecx, 8
je 0x10009624
cmp ecx, 4
jne case.default.0x100091d5
push 0x64
push edi
mov byte [esi + 6], 1
call fcn.1006ee6d
mov ecx, dword [esp + 0x94]
add esp, 8
cmp ecx, 1
je 0x10009632
dec al
mov byte [esi + 2], al
mov word [esi], dx
jmp 0x1000963a
push 0x64
push eax
mov byte [esi + 6], dl
call fcn.1006ee6d
add esp, 8
dec dl
mov byte [esi + 2], dl
mov word [esi], ax
mov ax, word [esi]
cmp ax, 0x64
jae 0x10009727
cmp dword [esp + 0x2c], 2
ja 0x10009727
mov edx, dword [esp + 0x94]
movzx ecx, ax
cmp ecx, edx
jae 0x1000971f
add eax, 0x7d0
push esi
mov word [esi], ax
call fcn.10008fd0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
cmp ebp, 3
mov eax, dword [esp + 0x8c]
jne 0x100096b8
cmp eax, 1
je 0x100096a7
mov ecx, dword [esp + 0x70]
mov dx, word [esp + 0x58]
mov ebp, 2
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], ebp
mov word [esi], dx
cmp eax, 3
je 0x100096b8
dec ebp
mov dword [esp + 0x4c], ebp
mov cl, byte [esp + ebp*4 + 0x50]
mov byte [esi + 6], cl
test ebx, ebx
jne 0x100096ca
dec ebp
mov dword [esp + 0x4c], ebp
mov dl, byte [esp + ebp*4 + 0x50]
dec dl
mov byte [esi + 2], dl
cmp eax, 3
jne 0x100096eb
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x100096eb
test ebp, ebp
jle 0x1000963a
dec ebp
mov dword [esp + 0x4c], ebp
mov cl, byte [esp + ebp*4 + 0x50]
mov byte [esi + 6], cl
test ebp, ebp
jle 0x1000963a
cmp eax, 1
jne 0x1000970d
mov edx, dword [esp + ebp*4 + 0x64]
dec ebp
mov dword [esp + 0x4c], ebp
mov ax, word [esp + ebp*4 + 0x50]
mov dword [esp + 0x2c], edx
mov word [esi], ax
test ebp, ebp
jle 0x1000963a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret
add eax, 0x76c
mov word [esi], ax
push esi
call fcn.10008fd0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret