Function at 0x100ad720
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
mov edx, ecx
mov ecx, dword [ebp + 8]
push esi
push edi
mov dword [esp + 8], edx
mov ecx, dword [ecx]
mov eax, ecx
shr eax, 0x14
and ecx, 0x3fff
and eax, 0x3f
mov dword [esp + 0x3c], ecx
shl eax, 7
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
lea eax, [eax + eax*2]
lea eax, [eax + 0x62c]
mov esi, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], esi
movzx eax, word [esi + 4]
mov dword [esp + 0x1c], eax
movzx edi, ax
test ax, ax
je 0x100ad7b0
nop dword [eax]
movzx eax, di
mov dword [esp + 0x10], eax
mov esi, dword [esi + eax*8]
mov dword [esp + 0x20], esi
mov eax, dword [esi + 0xc]
and eax, 0x3fff
cmp ecx, eax
je 0x100ad827
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
movzx edi, word [esi + eax*8 + 4]
test di, di
jne 0x100ad780
cmp byte [edx + 0x18d0], 0
je 0x100ad9ed
xor edi, edi
mov ecx, 0x18bc
cmp dword [ebp + 0x14], 1
mov eax, 0x18b0
cmovne eax, ecx
mov eax, dword [eax + edx]
mov dword [esp + 0x20], eax
movzx eax, word [eax + 4]
mov ecx, eax
test ax, ax
je 0x100ad9ed
mov esi, dword [esp + 0x3c]
nop word [eax + eax]
movzx eax, cx
mov ecx, dword [esp + 0x20]
lea edx, [ecx + eax*8]
mov ecx, dword [edx]
mov eax, dword [ecx + 0xc]
and eax, 0x3fff
cmp esi, eax
jne 0x100ad819
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x100ad902
cmp eax, 1
cmove edi, ecx
movzx ecx, word [edx + 4]
test cx, cx
jne 0x100ad7f0
jmp 0x100ad904
cmp word [esp + 0x1c], di
je 0x100ad89f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx ecx, word [eax + edx*8 + 6]
movzx eax, word [eax + edx*8 + 4]
mov word [esi + ecx*8 + 4], ax
mov eax, esi
mov ecx, dword [esp + 0x18]
movzx edx, word [eax + edx*8 + 4]
mov ecx, dword [ecx]
mov eax, dword [esp + 0x10]
movzx eax, word [esi + eax*8 + 6]
mov esi, dword [esp + 0x18]
mov word [ecx + edx*8 + 6], ax
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
mov dword [esp + 0x1c], edx
mov word [edx + eax*8 + 6], cx
movzx eax, word [edx + 4]
mov ecx, dword [esi]
mov edx, dword [esp + 0x10]
mov word [ecx + edx*8 + 4], ax
mov edx, dword [esp + 0x1c]
mov eax, dword [esi]
mov esi, dword [esp + 0x20]
movzx ecx, word [edx + 4]
mov word [eax + ecx*8 + 6], di
mov word [edx + 4], di
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
cmp word [edi + 0x1076213c], 0x10
setne al
or byte [esi + 0x24], al
mov eax, dword [ecx]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 4]
mov ecx, esi
mov dword [esi + 0x10], eax
call fcn.100b00e0
movzx eax, word [edi + 0x1076213e]
cmp eax, 0x20
jne 0x100ad8ef
mov eax, dword [ebp + 0x1c]
and eax, 0xff000000
cmp eax, 0xff000000
je 0x100ad8f4
mov edi, dword [esp + 8]
mov al, 1
or byte [esi + 0x51], al
jmp 0x100adb01
cmp eax, 0x10
je 0x100ad8e1
mov edi, dword [esp + 8]
xor al, al
or byte [esi + 0x51], al
jmp 0x100adb01
mov edi, ecx
test edi, edi
je 0x100ad9e9
mov ecx, dword [ebp + 0xc]
xor eax, eax
push dword [ebp + 0x14]
movd xmm2, eax
mov eax, 1
movaps xmm1, xmm2
movd xmm0, eax
mov eax, dword [ebp + 0x10]
punpckldq xmm1, xmm0
punpckldq xmm1, xmm1
cvtdq2ps xmm0, xmm1
push eax
push ecx
push dword [ebp + 8]
movaps xmmword [esp + 0x60], xmm0
movaps xmm1, xmm2
movd xmm0, ecx
mov ecx, dword [esp + 0x18]
punpckldq xmm1, xmm0
movd xmm0, eax
punpckldq xmm2, xmm0
mov eax, dword [ecx]
punpckldq xmm1, xmm2
cvtdq2ps xmm0, xmm1
mov eax, dword [eax + 4]
movaps xmmword [esp + 0x50], xmm0
call eax
mov cl, byte [edi + 0x24]
mov esi, eax
mov eax, dword [esp + 0x14]
mov byte [esi + 0x24], cl
cmp word [eax + 0x1076213c], 0x10
jne 0x100ad996
mov ecx, dword [edi + 0xc]
shr ecx, 0x14
and ecx, 0x3f
shl ecx, 7
cmp word [ecx + 0x1076213c], 0x10
jne 0x100ad996
mov cl, 1
jmp 0x100ad998
xor cl, cl
cmp dword [ebp + 0x14], 1
jne 0x100ad9b5
test cl, cl
je 0x100ad9a9
mov edx, 0x10
jmp 0x100ad9bb
movzx edx, word [eax + 0x10762142]
add edx, 0xd
jmp 0x100ad9bb
movzx edx, cl
add edx, 0xb
mov eax, dword [esp + 8]
push 0
push edx
lea edx, [esp + 0x48]
mov eax, dword [eax + 4]
push edx
push dword [esi + 8]
lea edx, [esp + 0x60]
mov ecx, dword [eax + 0x325c]
push edx
push dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x78]
mov edi, dword [esp + 8]
jmp 0x100adb01
mov edx, dword [esp + 8]
push dword [ebp + 0x14]
mov eax, dword [edx]
mov ecx, edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov eax, dword [eax + 4]
push dword [ebp + 8]
call eax
mov edi, dword [esp + 8]
mov esi, eax
cmp byte [edi + 0x18d0], 0
jne 0x100ada22
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x10762179], 0
je 0x100ada22
xor dl, dl
jmp 0x100ada24
mov dl, 1
mov edi, dword [esp + 8]
cmp byte [edi + 0x18c9], 0
je 0x100adb01
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, ecx
shr eax, 0xe
and eax, 0x3f
mov dword [esp + 0x20], ecx
mov dword [esp + 0x3c], eax
jbe 0x100adb01
test dl, dl
je 0x100adb01
shr ecx, 5
mov eax, 0x200
and ecx, 0x1ff
xor edx, edx
sub eax, ecx
mov ecx, dword [esp + 0x3c]
shl eax, 5
div ecx
shl ecx, 6
cmp ecx, eax
cmovl eax, ecx
xor edx, edx
movd xmm0, ecx
lea ecx, [esi + 0x30]
movd xmm1, edx
mov edx, dword [ecx + 4]
movaps xmm2, xmm1
punpckldq xmm2, xmm0
movd xmm0, eax
mov eax, dword [esp + 0x20]
punpckldq xmm1, xmm0
punpckldq xmm2, xmm1
movaps xmm0, xmm2
shr eax, 0x14
psrldq xmm0, 4
and eax, 0x3f
movd dword [esp + 0x54], xmm0
movaps xmm0, xmm2
movd dword [esp + 0x50], xmm2
psrldq xmm0, 8
psrldq xmm2, 0xc
mov dword [esp + 0x60], eax
movd dword [esp + 0x58], xmm0
movd dword [esp + 0x5c], xmm2
cmp edx, dword [ecx + 8]
je 0x100adaef
movups xmm0, xmmword [esp + 0x50]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], eax
add dword [ecx + 4], 0x14
jmp 0x100adafa
lea eax, [esp + 0x50]
push eax
push edx
call fcn.100b17a0
mov ecx, esi
call fcn.100b00e0
push dword [esi + 8]
mov ecx, edi
call fcn.100ad640
cmp byte [ebp + 0x18], 0
mov eax, esi
je 0x100adb17
mov byte [esi + 0x2c], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18