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

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x24
mov eax, dword [ecx + 0xec]
push ebx
push ebp
push esi
cmp eax, 0x10
push edi
jne 0x10090820
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
imul edi, esi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
add eax, edi
mov ebx, dword [ecx]
push esi
mov ebp, dword [edx]
shl eax, 4
add ebx, eax
add ebp, eax
push ebx
push ebp
call dword [0x1019ed10]
lea eax, [ebx + 8]
push esi
lea ecx, [ebp + 8]
push eax
push ecx
call dword [0x1019ed10]
lea edx, [ebx + esi*8]
push esi
lea eax, [ebp + esi*8]
push edx
push eax
call dword [0x1019ed10]
lea ecx, [ebx + esi*8 + 8]
push esi
lea edx, [ebp + esi*8 + 8]
push ecx
push edx
call dword [0x1019ed10]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x88]
shr edi, 1
mov ecx, dword [ebp + 4]
add edi, eax
mov eax, dword [ebx + 4]
shl edi, 3
shr esi, 1
add eax, edi
push esi
add ecx, edi
push eax
push ecx
call dword [0x1019ed10]
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 8]
add edx, edi
push esi
add eax, edi
push edx
push eax
call dword [0x1019ed10]
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
xor ebx, ebx
cmp eax, ebx
je 0x10090c7e
cmp eax, 1
je 0x10090c7e
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x14], ebx
cmp edi, ebx
mov dword [esp + 0x18], ebx
je 0x1009084f
add ecx, 0x124
mov dword [esp + 0x54], ecx
jmp 0x10090853
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edx
jmp 0x10090871
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
mov eax, dword [ecx + ebx*8]
mov ecx, dword [ecx + ebx*8 + 4]
test edi, edi
mov dword [esp + 0x38], eax
je 0x10090885
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, ecx
test edi, edi
mov dword [esp + 0x14], edx
je 0x1009089a
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x18]
mov ebp, ebx
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
sar ebp, 1
add eax, eax
and ebx, 1
add ebp, eax
lea eax, [edx + edx]
add ebx, eax
mov eax, dword [esp + 0x50]
shl ebp, 3
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x68], edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
shl ebx, 3
test eax, eax
mov dword [esp + 0x24], ebx
je 0x10090b77
mov eax, dword [esp + 0x38]
mov edx, ecx
or edx, eax
test dl, 3
je 0x10090b58
lea eax, [ecx + ebp*4]
mov edx, dword [esp + 0x38]
sar eax, 2
imul eax, esi
mov dword [esp + 0x20], eax
lea eax, [edx + ebx*4]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
sar eax, 2
add edx, ebx
mov edi, dword [0x101358b0]
add eax, edx
mov edx, dword [esp + 0x74]
and ecx, 3
lea ebx, [edx + 0x20]
mov edx, dword [esp + 0x38]
shl ecx, 2
and edx, 3
or ecx, edx
cmp ecx, 0xf
ja case.default.0x1009095d
jmp dword [ecx*4 + 0x1009102c]
push esi
push eax
mov eax, dword [esp + 0x7c]
push eax
call dword [0x1019ed10]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
add esp, 0xc
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x1c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x18]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x20]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x28]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x10090a3f
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x10090a3f
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x28]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x24]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x10090ab8
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x10090ab8
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x24]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x2c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x10090c19
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x10090b31
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x10090b31
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x2c]
add esp, 0x28
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x24]
jmp 0x10090c19
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
sar ecx, 2
sar eax, 2
jmp 0x10090c0e
mov edx, dword [esp + 0x38]
mov eax, ecx
and edx, 1
and eax, 1
lea eax, [eax + edx*2]
sub eax, 0
je 0x10090bfc
dec eax
je 0x10090bda
dec eax
je 0x10090bb6
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
lea eax, [ecx - 1]
sar edi, 1
add edi, ebp
mov ecx, dword [esp + 0x20]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x10090c17
mov eax, ecx
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov edi, eax
sar edi, 1
add edi, ebp
lea eax, [edx - 1]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x10090c17
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x2c]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 1
add edi, ebp
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x10090c17
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
add ecx, ebp
imul ecx, esi
add edi, ecx
add eax, edi
add eax, ebx
imul ebp, esi
mov edi, dword [esp + 0x30]
push esi
add ebp, edi
mov edi, dword [esp + 0x20]
add ebp, ebx
push eax
push ebp
push edi
call dword [0x1019ed0c]
mov eax, dword [esp + 0x20]
add esp, 0x10
inc eax
add edi, 0x80
cmp eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
jl 0x10090865
mov eax, dword [esp + 0x14]
mov edx, eax
and edx, 0xf
sar eax, 3
add eax, dword [edx*4 + 0x100f91d0]
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edx, eax
and edx, 0xf
sar eax, 3
mov edi, dword [edx*4 + 0x100f91d0]
jmp 0x10090fe8
cmp dword [ecx + 0x1dc], ebx
je 0x10090d9e
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
mov ebx, esi
mov eax, dword [esp + 0x3c]
imul ebx, edi
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x70], ebx
add ebx, eax
mov ecx, dword [ebp]
mov eax, dword [edx]
shl ebx, 4
add ecx, ebx
push edi
push ecx
mov ecx, dword [esp + 0x64]
add eax, ebx
push eax
push ecx
call dword [0x1019ed0c]
mov edx, dword [ebp]
mov ecx, dword [esp + 0x68]
push edi
lea eax, [edx + ebx + 8]
mov edx, dword [ecx]
push eax
lea eax, [ebx + edx + 8]
mov ebx, dword [esp + 0x74]
push eax
lea ecx, [ebx + 0x80]
push ecx
call dword [0x1019ed0c]
shl esi, 4
add esi, 8
mov edx, dword [esp + 0x5c]
imul esi, edi
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp]
shl edx, 4
add esi, edx
mov edx, dword [ecx]
add eax, esi
push edi
push eax
add edx, esi
lea eax, [ebx + 0x100]
push edx
push eax
call dword [0x1019ed0c]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x88]
push edi
lea edx, [esi + ecx + 8]
mov ecx, dword [eax]
push edx
lea eax, [ebx + 0x180]
lea edx, [esi + ecx + 8]
push edx
push eax
call dword [0x1019ed0c]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x7c]
add esp, 0x40
lea edx, [ecx*8]
mov ecx, dword [ebp + 4]
shr edx, 1
shr edi, 1
lea esi, [edx + eax*8]
mov edx, dword [esp + 0x58]
add ecx, esi
push edi
mov eax, dword [edx + 4]
push ecx
add eax, esi
lea ecx, [ebx + 0x200]
push eax
push ecx
call dword [0x1019ed0c]
mov edx, dword [ebp + 8]
push edi
add edx, esi
mov eax, dword [esp + 0x6c]
push edx
add ebx, 0x280
mov ecx, dword [eax + 8]
add ecx, esi
push ecx
push ebx
call dword [0x1019ed0c]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x6c]
cmp edx, ebx
je 0x10090dbc
mov eax, dword [ecx + 0x124]
mov edi, dword [ecx + 0x128]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edi
jmp 0x10090dcb
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
mov edi, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
shl ebx, 4
mov ecx, dword [ecx]
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x68]
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
shl ebp, 4
mov ecx, dword [ecx]
test edx, edx
mov edx, edi
je 0x10090e7b
or edx, eax
test dl, 3
je 0x10090e4f
mov edx, dword [esp + 0x70]
push edx
push esi
push edi
mov edi, dword [esp + 0x80]
push eax
push ebx
lea eax, [edi + 0x60]
push ebp
push eax
lea edx, [edi + 0x40]
lea eax, [edi + 0x20]
push edx
push eax
push ecx
mov ecx, ebx
mov edx, edi
imul ecx, esi
sub edx, ecx
sub edx, ebp
push edx
call fcn.100928b0
add esp, 0x2c
jmp 0x10090f25
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 2
jmp 0x10090f1f
and eax, 1
and edx, 1
lea eax, [edx + eax*2]
sub eax, 0
je 0x10090f00
dec eax
je 0x10090edc
dec eax
je 0x10090eb6
lea eax, [edi - 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x30]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x10090f23
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x4c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x10090f23
lea eax, [edi - 1]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 1
add ecx, ebx
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x10090f23
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 1
add ecx, eax
add edi, ecx
add edi, ebp
mov edx, ebx
mov eax, dword [esp + 0x50]
imul edx, esi
add edx, eax
push esi
push edi
lea eax, [edx + ebp]
mov dword [esp + 0x70], eax
push eax
mov eax, dword [esp + 0x68]
push eax
call dword [0x1019ed0c]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
lea ecx, [edi + 8]
push esi
add edx, 8
push ecx
add eax, 0x80
push edx
push eax
call dword [0x1019ed0c]
add ebx, 8
mov ecx, dword [esp + 0x70]
imul ebx, esi
add ebx, ecx
lea ecx, [edi + esi*8]
add ebp, ebx
mov ebx, dword [esp + 0x7c]
push esi
push ecx
lea edx, [ebx + 0x100]
push ebp
push edx
call dword [0x1019ed0c]
lea eax, [edi + esi*8 + 8]
push esi
add ebp, 8
push eax
add ebx, 0x180
push ebp
push ebx
call dword [0x1019ed0c]
mov eax, dword [esp + 0xac]
add esp, 0x40
test eax, eax
je 0x10090fc2
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
jmp 0x10090fca
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov edx, ecx
and edx, 3
sar ecx, 1
mov edi, dword [edx*4 + 0x100f9230]
mov edx, eax
and edx, 3
add ecx, edi
sar eax, 1
mov edi, dword [edx*4 + 0x100f9230]
mov edx, dword [esp + 0x70]
add eax, edi
push edx
mov edx, dword [esp + 0x60]
shr esi, 1
add edx, 0x200
push esi
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
push eax
push ecx
call fcn.10091070
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret