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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
mov ecx, dword [esi]
mov dl, byte [ecx + 0x2c]
mov ebp, dword [esi + 4]
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
test dl, dl
setne byte [esp + 0xf]
test ecx, ecx
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
mov edx, ecx
jge 0x300b9440
neg edx
mov ebx, dword [esi + 0x18]
test ebx, ebx
mov eax, ebx
jge 0x300b944b
neg eax
cmp eax, edx
mov dword [esp + 0x24], eax
jg 0x300b9457
mov dword [esp + 0x24], edx
mov edi, dword [esi + 0xc]
test edi, edi
mov edx, edi
jge 0x300b9462
neg edx
mov esi, dword [esi + 0x1c]
test esi, esi
mov eax, esi
jge 0x300b946d
neg eax
cmp eax, edx
jg 0x300b9473
mov eax, edx
cmp eax, 0x10000
jg 0x300b971b
cmp dword [esp + 0x24], 0x10000
jg 0x300b971b
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov eax, dword [ebp + 0x18]
mov ecx, edx
movzx edx, dh
mov dword [esp + 0x38], edx
movzx edx, byte [esp + 0x6d]
sar ecx, 0x10
xor esi, esi
sar edi, 0x10
cmp ecx, esi
mov ebx, 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jge 0x300b94c2
xor ecx, ecx
xor ebx, ebx
cmp edi, esi
jge 0x300b94cc
xor edi, edi
mov dword [esp + 0x68], esi
mov edx, dword [ebp + 0x10]
dec edx
cmp ecx, edx
jl 0x300b94d8
mov ecx, edx
xor ebx, ebx
mov edx, dword [ebp + 0x14]
dec edx
cmp edi, edx
jl 0x300b94e6
mov edi, edx
mov dword [esp + 0x68], esi
xor edx, edx
mov dword [esp + 0x3e], edx
mov word [esp + 0x42], dx
mov dword [esp + 0x46], edx
mov word [esp + 0x4a], dx
mov dword [esp + 0x4e], edx
mov word [esp + 0x52], dx
mov dword [esp + 0x56], edx
mov word [esp + 0x5a], dx
mov edx, dword [esp + 0x28]
sub edx, 3
mov word [esp + 0x3c], si
mov word [esp + 0x44], si
mov word [esp + 0x4c], si
mov word [esp + 0x54], si
je 0x300b95db
dec edx
je 0x300b9587
dec edx
jne 0x300b967d
mov edx, dword [ebp + 4]
imul eax, edi
add eax, edx
lea esi, [eax + ecx*4]
mov ecx, dword [esi]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.30039710
mov eax, dword [esi + ebx*4]
lea edx, [esp + 0x4c]
push edx
push eax
call fcn.30039710
mov edi, dword [esp + 0x78]
mov edx, dword [esi + edi]
lea ecx, [esp + 0x5c]
add esi, edi
push ecx
push edx
call fcn.30039710
mov ecx, dword [esi + ebx*4]
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.30039710
add esp, 0x20
jmp 0x300b967d
mov edx, dword [ebp + 4]
imul eax, edi
add eax, edx
lea esi, [eax + ecx*2]
movzx eax, word [esi]
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.300a1630
movzx edx, word [esi + ebx*2]
lea ecx, [esp + 0x4c]
push ecx
push edx
call fcn.300a1630
mov edx, dword [esp + 0x78]
movzx ecx, word [esi + edx]
add esi, edx
lea eax, [esp + 0x5c]
push eax
push ecx
call fcn.300a1630
movzx eax, word [esi + ebx*2]
lea edx, [esp + 0x6c]
push edx
push eax
call fcn.300a1630
add esp, 0x20
jmp 0x300b967d
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 4]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 8]
imul esi, edi
add esi, dword [ebp + 4]
add esi, ecx
test eax, eax
je 0x300b95f9
add eax, 4
jmp 0x300b95fb
xor eax, eax
movzx edx, byte [esi]
lea ecx, [esp + 0x3c]
push ecx
lea eax, [eax + edx*4]
push eax
call fcn.300a15a0
mov eax, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x300b961b
add eax, 4
jmp 0x300b961d
xor eax, eax
movzx edx, byte [esi + ebx]
lea ecx, [esp + 0x44]
push ecx
lea eax, [eax + edx*4]
push eax
call fcn.300a15a0
mov edx, dword [esp + 0x70]
mov eax, dword [ebp + 8]
add esp, 8
add esi, edx
test eax, eax
je 0x300b9644
add eax, 4
jmp 0x300b9646
xor eax, eax
movzx edx, byte [esi]
lea ecx, [esp + 0x4c]
push ecx
lea eax, [eax + edx*4]
push eax
call fcn.300a15a0
mov ebp, dword [ebp + 8]
add esp, 8
test ebp, ebp
je 0x300b9666
lea eax, [ebp + 4]
jmp 0x300b9668
xor eax, eax
movzx edx, byte [esi + ebx]
lea ecx, [esp + 0x54]
push ecx
lea eax, [eax + edx*4]
push eax
call fcn.300a15a0
add esp, 8
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x54]
mov edx, 0x100
sub edx, esi
mov eax, edx
imul edx, edi
mov ecx, 0x100
sub ecx, edi
mov edi, dword [esp + 0x4c]
imul eax, ecx
imul ecx, esi
sar edx, 8
sar ecx, 8
imul edi, edx
mov esi, 0x100
sub esi, edx
sub esi, ecx
sar eax, 8
sub esi, eax
imul ebx, esi
add ebx, edi
mov edi, dword [esp + 0x44]
imul edi, ecx
add ebx, edi
mov edi, dword [esp + 0x3c]
imul edi, eax
add ebx, edi
mov edi, dword [esp + 0x70]
shr ebx, 8
and ebx, 0xff00ff
mov dword [edi], ebx
mov ebx, dword [esp + 0x58]
imul ebx, esi
mov esi, dword [esp + 0x50]
imul esi, edx
mov edx, dword [esp + 0x48]
imul edx, ecx
mov ecx, dword [esp + 0x40]
imul ecx, eax
add ebx, esi
add ebx, edx
add ebx, ecx
shr ebx, 8
and ebx, 0xff00ff
mov dword [edi + 4], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
test ecx, ecx
mov edx, ecx
jge 0x300b9723
neg edx
test ebx, ebx
mov eax, ebx
jge 0x300b972b
neg eax
cmp edx, eax
jg 0x300b9739
test ebx, ebx
jge 0x300b9735
neg ebx
mov ecx, ebx
jmp 0x300b973f
test ecx, ecx
jge 0x300b973f
neg ecx
test esi, esi
mov edx, esi
jge 0x300b9747
neg edx
test edi, edi
mov eax, edi
jge 0x300b974f
neg eax
cmp edx, eax
jg 0x300b975b
test edi, edi
jge 0x300b9763
neg edi
jmp 0x300b9763
test esi, esi
jge 0x300b9761
neg esi
mov edi, esi
mov eax, dword [esp + 0x68]
mov edx, eax
sar edx, 0x10
mov dword [esp + 0x24], edx
add ecx, eax
mov edx, ecx
sar edx, 0x10
mov dword [esp + 0x1c], edx
or edx, 0xffffffff
sar eax, 8
sub edx, eax
mov eax, dword [esp + 0x6c]
and edx, 0xff
mov dword [esp + 0x3c], edx
movzx edx, ch
lea ecx, [edi + eax]
mov dword [esp + 0x44], edx
mov esi, eax
sar eax, 8
or edx, 0xffffffff
sub edx, eax
xor ebx, ebx
sar esi, 0x10
mov edi, ecx
sar edi, 0x10
movzx eax, ch
and edx, 0xff
cmp esi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x6c], esi
jg 0x300b9a57
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x24]
cmp ebp, dword [esp + 0x1c]
mov dword [esp + 0x30], ebp
jg 0x300b998c
xor ecx, ecx
xor di, di
test ebp, ebp
mov dword [esp + 0x5e], ecx
jl 0x300b997b
test edx, edx
jl 0x300b997b
cmp ebp, dword [esi + 0x10]
jge 0x300b997b
cmp edx, dword [esi + 0x14]
jge 0x300b997b
mov eax, dword [esi + 0x18]
imul eax, edx
add eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
sub edx, 3
je 0x300b989e
dec edx
je 0x300b9869
dec edx
jne 0x300b98cb
mov eax, dword [eax + ebp*4]
mov edx, eax
shr edx, 0x10
movzx si, dl
mov ecx, eax
mov edx, eax
shr ecx, 0x18
shr edx, 8
movzx dx, dl
movzx di, al
jmp 0x300b98d5
movzx eax, word [eax + ebp*2]
mov edx, eax
shr edx, 0xa
and edx, 0x1f
mov si, word [edx*4 + 0x3029ad88]
mov edx, eax
shr edx, 5
and edx, 0x1f
mov dx, word [edx*4 + 0x3029ad88]
and eax, 0x1f
mov di, word [eax*4 + 0x3029ad88]
mov cx, 0xff
jmp 0x300b98e6
mov esi, dword [esi + 8]
test esi, esi
je 0x300b98aa
lea ecx, [esi + 4]
jmp 0x300b98ac
xor ecx, ecx
movzx eax, byte [eax + ebp]
movzx si, byte [ecx + eax*4 + 2]
movzx dx, byte [ecx + eax*4 + 1]
movzx di, byte [ecx + eax*4]
lea eax, [ecx + eax*4]
movzx cx, byte [eax + 3]
jmp 0x300b98d5
mov dx, word [esp + 0x5e]
mov si, word [esp + 0x60]
test cx, cx
jne 0x300b98e6
mov al, byte [esp + 0x13]
test al, al
je 0x300b9973
cmp ebp, dword [esp + 0x24]
jne 0x300b98f2
mov eax, dword [esp + 0x3c]
jmp 0x300b9901
cmp ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
je 0x300b9901
mov eax, 0x100
mov ebx, dword [esp + 0x6c]
cmp ebx, dword [esp + 0x38]
jne 0x300b9912
imul eax, dword [esp + 0x4c]
jmp 0x300b9922
cmp ebx, dword [esp + 0x34]
jne 0x300b991f
imul eax, dword [esp + 0x54]
jmp 0x300b9922
shl eax, 8
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x74]
movzx edx, dx
sar eax, 8
imul edx, eax
add ebx, edx
movzx esi, si
imul esi, eax
movzx edx, di
imul edx, eax
movzx ecx, cx
imul ecx, eax
add ebp, esi
mov esi, dword [esp + 0x18]
add esi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x2c]
add edx, ecx
add ebx, eax
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
mov dword [esp + 0x30], ebp
jle 0x300b9802
mov eax, dword [esp + 0x34]
inc edx
cmp edx, eax
mov dword [esp + 0x6c], edx
jle 0x300b97f0
mov esi, dword [esp + 0x20]
test esi, esi
je 0x300b9a30
mov ecx, dword [esp + 0x70]
xor edx, edx
cmp ebx, 0x10000
jae 0x300b99fb
mov eax, 0x1000000
div ebx
pop edi
mov edx, eax
imul edx, dword [esp + 0x70]
shr edx, 0x18
mov word [ecx + 4], dx
mov edx, eax
imul edx, dword [esp + 0x64]
shr edx, 0x18
mov word [ecx + 2], dx
mov edx, eax
imul eax, esi
imul edx, dword [esp + 0x14]
pop esi
shr edx, 0x18
shr eax, 0x18
pop ebp
mov word [ecx], dx
mov word [ecx + 6], ax
pop ebx
add esp, 0x54
ret 0x14
mov eax, dword [esp + 0x74]
div ebx
xor edx, edx
pop edi
mov word [ecx + 4], ax
mov eax, dword [esp + 0x64]
div ebx
xor edx, edx
mov word [ecx + 2], ax
mov eax, dword [esp + 0x14]
div ebx
xor edx, edx
mov word [ecx], ax
mov eax, esi
div ebx
pop esi
pop ebp
pop ebx
mov word [ecx + 6], ax
add esp, 0x54
ret 0x14
test ebx, ebx
je 0x300b9a57
mov al, byte [esp + 0x13]
test al, al
je 0x300b9a57
mov eax, dword [esp + 0x70]
pop edi
pop esi
pop ebp
mov dword [eax], 0
mov dword [eax + 4], 0
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
jge 0x300b9a6b
xor ecx, ecx
jmp 0x300b9a75
mov eax, dword [esi + 0x10]
cmp ecx, eax
jl 0x300b9a75
lea ecx, [eax - 1]
test edx, edx
jge 0x300b9a7d
xor edx, edx
jmp 0x300b9a87
mov eax, dword [esi + 0x14]
cmp edx, eax
jl 0x300b9a87
lea edx, [eax - 1]
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 4]
imul eax, edx
mov edx, dword [esp + 0x28]
add eax, ebx
sub edx, 3
je 0x300b9b32
dec edx
je 0x300b9ae4
dec edx
jne 0x300b9b6d
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x70]
mov edx, eax
shr edx, 0x18
mov word [ecx + 6], dx
mov edx, eax
shr edx, 0x10
movzx dx, dl
mov word [ecx + 4], dx
mov edx, eax
pop edi
shr edx, 8
pop esi
movzx dx, dl
movzx ax, al
pop ebp
mov word [ecx + 2], dx
mov word [ecx], ax
pop ebx
add esp, 0x54
ret 0x14
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x70]
mov edx, eax
shr edx, 0xa
and edx, 0x1f
mov word [ecx + 6], 0xff
mov dx, word [edx*4 + 0x3029ad88]
mov word [ecx + 4], dx
mov edx, eax
shr edx, 5
and edx, 0x1f
mov dx, word [edx*4 + 0x3029ad88]
pop edi
pop esi
and eax, 0x1f
mov word [ecx + 2], dx
mov ax, word [eax*4 + 0x3029ad88]
pop ebp
mov word [ecx], ax
pop ebx
add esp, 0x54
ret 0x14
mov esi, dword [esi + 8]
test esi, esi
je 0x300b9b3e
lea edx, [esi + 4]
jmp 0x300b9b40
xor edx, edx
movzx ecx, byte [eax + ecx]
lea eax, [edx + ecx*4]
movzx dx, byte [eax + 3]
mov ecx, dword [esp + 0x70]
mov word [ecx + 6], dx
movzx dx, byte [eax + 2]
mov word [ecx + 4], dx
movzx dx, byte [eax + 1]
mov word [ecx + 2], dx
movzx ax, byte [eax]
mov word [ecx], ax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14