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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x84
xor ecx, ecx
add eax, 2
push ebx
push esi
push edi
mov edi, dword [esp + 0x94]
xor edx, edx
xor ebx, ebx
mov dl, byte [eax - 2]
mov bl, byte [eax - 1]
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax]
add eax, 4
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax - 3]
shl edx, 8
add edx, ebx
mov dword [edi + ecx*4], edx
inc ecx
cmp ecx, 4
jl 0x10009899
mov ebx, 4
mov esi, edi
mov dword [esp + 0x18], ebx
mov ecx, dword [esi + 0xc]
test bl, 3
jne 0x1000993c
mov eax, ecx
xor edx, edx
shr eax, 0x18
shl ecx, 8
or eax, ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
xor ebx, ebx
mov cl, byte [esp + 0x16]
mov dl, byte [ecx + 0x10086aa8]
mov ecx, eax
shr ecx, 0x18
mov dh, byte [ecx + 0x10086aa8]
xor ecx, ecx
mov cl, ah
and eax, 0xff
shl edx, 8
mov bl, byte [ecx + 0x10086aa8]
xor ecx, ecx
mov cl, byte [eax + 0x10086aa8]
or edx, ebx
mov ebx, dword [esp + 0x18]
shl edx, 8
or edx, ecx
mov eax, ebx
mov ecx, edx
cdq
and edx, 3
add eax, edx
sar eax, 2
xor ecx, dword [eax*4 + 0x10086ca8]
mov edx, dword [esi]
add esi, 4
xor edx, ecx
inc ebx
mov dword [esi + 0xc], edx
cmp ebx, 0x2c
mov dword [esp + 0x18], ebx
jl 0x100098d2
lea ecx, [edi + 0x10]
mov dword [esp + 0x14], 9
mov dword [esp + 0x7c], ecx
xor eax, eax
mov dword [esp + 0x74], eax
mov bl, byte [ecx + eax*4 + 2]
mov dl, byte [ecx + eax*4 + 3]
mov byte [esp + 0x1c], bl
mov ebx, dword [ecx + eax*4]
mov al, byte [ecx + eax*4]
mov byte [esp + 0x20], dl
shr ebx, 8
and dl, 0x80
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x20]
mov byte [esp + 0x18], bl
mov byte [esp + 0x13], dl
je 0x100099a5
and eax, 0xff
mov dword [esp + 0x58], eax
lea ecx, [eax + eax]
mov al, cl
xor al, 0x1b
jmp 0x100099b3
and eax, 0xff
mov dword [esp + 0x58], eax
lea ecx, [eax + eax]
mov al, cl
mov byte [esp + 0x38], al
test al, al
mov eax, dword [esp + 0x38]
jns 0x100099ce
and eax, 0xff
mov dword [esp + 0x6c], eax
add al, al
xor al, 0x1b
jmp 0x100099d9
and eax, 0xff
mov dword [esp + 0x6c], eax
add al, al
mov byte [esp + 0x30], al
test al, al
mov eax, dword [esp + 0x30]
jns 0x100099f4
and eax, 0xff
mov dword [esp + 0x64], eax
add al, al
xor al, 0x1b
jmp 0x100099ff
and eax, 0xff
mov dword [esp + 0x64], eax
add al, al
mov byte [esp + 0x68], al
mov al, byte [esp + 0x1c]
and al, 0x80
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x1c]
je 0x10009a25
and eax, 0xff
mov dword [esp + 0x5c], eax
lea edx, [eax + eax]
mov al, dl
xor al, 0x1b
jmp 0x10009a33
and eax, 0xff
mov dword [esp + 0x5c], eax
lea edx, [eax + eax]
mov al, dl
mov byte [esp + 0x24], al
test al, al
mov eax, dword [esp + 0x24]
jns 0x10009a4e
and eax, 0xff
mov dword [esp + 0x54], eax
add al, al
xor al, 0x1b
jmp 0x10009a59
and eax, 0xff
mov dword [esp + 0x54], eax
add al, al
test al, al
jns 0x10009a63
add al, al
xor al, 0x1b
jmp 0x10009a65
add al, al
mov edi, dword [esp + 0x18]
and bl, 0x80
mov byte [esp + 0x78], al
mov byte [esp + 0x11], bl
mov eax, edi
je 0x10009a8a
and eax, 0xff
mov dword [esp + 0x70], eax
lea ebx, [eax + eax]
mov al, bl
xor al, 0x1b
jmp 0x10009a98
and eax, 0xff
mov dword [esp + 0x70], eax
lea ebx, [eax + eax]
mov al, bl
test al, al
jns 0x10009aa2
add al, al
xor al, 0x1b
jmp 0x10009aa4
add al, al
mov byte [esp + 0x40], al
test al, al
mov eax, dword [esp + 0x40]
jns 0x10009abf
and eax, 0xff
mov dword [esp + 0x4c], eax
add al, al
xor al, 0x1b
jmp 0x10009aca
and eax, 0xff
mov dword [esp + 0x4c], eax
add al, al
mov esi, dword [esp + 0x2c]
mov byte [esp + 0x60], al
mov al, byte [esp + 0x2c]
test al, al
mov eax, esi
jns 0x10009aeb
and eax, 0xff
mov dword [esp + 0x48], eax
add al, al
xor al, 0x1b
jmp 0x10009af6
and eax, 0xff
mov dword [esp + 0x48], eax
add al, al
test al, al
jns 0x10009b00
add al, al
xor al, 0x1b
jmp 0x10009b02
add al, al
test al, al
jns 0x10009b0c
add al, al
xor al, 0x1b
jmp 0x10009b0e
add al, al
mov byte [esp + 0x80], al
mov al, byte [esp + 0x13]
test al, al
je 0x10009b20
xor cl, 0x1b
mov al, cl
test al, al
jns 0x10009b2c
add al, al
xor al, 0x1b
jmp 0x10009b2e
add al, al
test al, al
jns 0x10009b38
add al, al
xor al, 0x1b
jmp 0x10009b3a
add al, al
mov byte [esp + 0x8c], al
mov al, byte [esp + 0x12]
test al, al
je 0x10009b4c
xor dl, 0x1b
mov al, dl
mov byte [esp + 0x3c], al
test al, al
mov eax, dword [esp + 0x3c]
jns 0x10009b69
and eax, 0xff
mov dword [esp + 0x50], eax
add al, al
xor al, 0x1b
jmp 0x10009b74
and eax, 0xff
mov dword [esp + 0x50], eax
add al, al
mov byte [esp + 0x34], al
test al, al
mov eax, dword [esp + 0x34]
jns 0x10009b8f
and eax, 0xff
mov dword [esp + 0x44], eax
add al, al
xor al, 0x1b
jmp 0x10009b9a
and eax, 0xff
mov dword [esp + 0x44], eax
add al, al
mov byte [esp + 0x84], al
mov al, byte [esp + 0x11]
test al, al
je 0x10009bac
xor bl, 0x1b
mov al, bl
mov byte [esp + 0x28], al
mov ebx, dword [esp + 0x28]
and ebx, 0xff
test al, al
mov al, bl
jns 0x10009bc8
add al, al
xor al, 0x1b
jmp 0x10009bca
add al, al
test al, al
jns 0x10009bd4
add al, al
xor al, 0x1b
jmp 0x10009bd6
add al, al
push esi
mov byte [esp + 0x8c], al
call fcn.10009dd0
and eax, 0xff
push edi
mov dword [esp + 0x14], eax
call fcn.10009e70
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
and eax, 0xff
push edx
xor ecx, eax
mov dword [esp + 0x18], ecx
call fcn.10009d90
mov ecx, dword [esp + 0x18]
and eax, 0xff
xor ecx, eax
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x1c], ecx
call fcn.10009e20
mov ecx, dword [esp + 0x1c]
and eax, 0xff
xor ecx, eax
push esi
mov dword [esp + 0x20], ecx
call fcn.10009e20
mov edx, dword [esp + 0x9c]
mov cl, al
mov eax, dword [esp + 0x98]
and ecx, 0xff
and edx, 0xff
and eax, 0xff
xor ecx, edx
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0x64]
xor ecx, eax
and edx, 0xff
mov eax, dword [esp + 0x84]
xor ecx, edx
mov edx, dword [esp + 0x94]
xor ecx, ebx
mov ebx, dword [esp + 0x58]
xor ecx, ebx
and edx, 0xff
xor ecx, edi
mov edi, dword [esp + 0x74]
and edi, 0xff
mov ebx, dword [esp + 0x6c]
xor edx, edi
mov edi, dword [esp + 0x8c]
and edi, 0xff
xor ecx, eax
xor edx, edi
mov edi, dword [esp + 0x7c]
and edi, 0xff
xor ecx, ebx
mov ebx, dword [esp + 0x60]
xor edx, edi
mov edi, dword [esp + 0x5c]
push esi
xor edx, edi
mov edi, dword [esp + 0x7c]
xor edx, ebx
mov ebx, dword [esp + 0x74]
xor edx, eax
mov eax, dword [esp + 0x6c]
xor edx, eax
mov eax, dword [esp + 0x84]
xor edx, ebx
xor edx, edi
xor edx, eax
mov eax, dword [esp + 0x24]
shl edx, 8
or ecx, edx
shl ecx, 8
or eax, ecx
shl eax, 8
mov dword [esp + 0x24], eax
call fcn.10009e70
mov bl, al
mov eax, dword [esp + 0x30]
and ebx, 0xff
push eax
call fcn.10009d90
mov ecx, dword [esp + 0x38]
and eax, 0xff
push ecx
xor ebx, eax
call fcn.10009e20
mov edx, dword [esp + 0x40]
and eax, 0xff
push edx
xor ebx, eax
call fcn.10009dd0
and eax, 0xff
mov ecx, dword [esp + 0xa0]
xor ebx, eax
mov eax, dword [esp + 0x30]
or eax, ebx
add esp, 0x24
mov edx, eax
mov eax, dword [esp + 0x74]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, 4
mov dword [esp + 0x74], eax
jl 0x10009965
mov eax, dword [esp + 0x14]
add ecx, 0x10
dec eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x14], eax
jne 0x1000995f
pop edi
pop esi
pop ebx
add esp, 0x84
ret