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

Disassembly:
sub esp, 0x10
mov ecx, 0x80
xor eax, eax
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
mov edi, ebp
mov esi, ebx
rep stosd dword es:[edi], eax
mov ecx, 0xc
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov byte [ebp + 0xd1], 2
mov al, byte [ebx + 2]
and al, 0xc0
cmp al, 0x40
jne 0x10160d7c
mov byte [ebp + 0xd1], 1
cmp byte [ebx + 0xf], 1
jne 0x10160da3
mov cl, byte [ebp + 2]
and cl, 0xfd
or cl, 1
mov byte [ebp + 2], cl
mov byte [ebp + 0xf], 2
mov cl, byte [ebp + 1]
and cl, 0x80
mov byte [ebp + 1], cl
mov al, byte [ebp + 8]
and al, 0xef
mov byte [ebp + 8], al
mov al, byte [ebx + 0xf0]
test al, al
je 0x10160db1
mov byte [ebp + 0xa], 1
lea esi, [ebp + 0xc]
push esi
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
lea esi, [ebp + 0x22]
push esi
mov dword [esp + 0x20], esi
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
lea esi, [ebp + 0x20]
push esi
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
lea esi, [ebp + 0x2c]
push esi
mov dword [esp + 0x2c], esi
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
lea esi, [ebp + 0x2e]
push esi
call sym.ITEuDllvMgr.dll_SwapWORD
mov edi, dword [esp + 0x40]
mov word [esi], ax
lea eax, [esp + 0x24]
mov edx, dword [edi + 0x80bc]
push eax
mov dword [esp + 0x28], edx
call sym.ITEuDllvMgr.dll_SwapDWORD
mov dword [ebp + 0x1c], eax
mov cl, byte [edi + 0x80b0]
mov byte [ebp + 0x11], cl
mov dl, byte [edi + 0x80b5]
mov byte [ebp + 0x10], dl
mov al, byte [edi + 0x80b4]
mov byte [ebp + 0x13], al
mov eax, 0x400
xor ecx, ecx
mov cl, byte [edi + 0x80b5]
cdq
idiv ecx
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x40], eax
call sym.ITEuDllvMgr.dll_SwapWORD
add esp, 0x1c
mov word [ebp + 0x14], ax
cmp word [ebx + 0x109], 0
je 0x10160e78
mov al, byte [ebx + 8]
and al, 0xc0
cmp al, 0x80
jne 0x10160e78
mov ecx, dword [esp + 0x24]
mov eax, dword [edi + 0x80b8]
lea esi, [ebp + 0x16]
and ecx, 0xffff
jmp 0x10160e95
mov eax, dword [edi + 0x80b8]
mov ecx, dword [esp + 0x24]
xor edx, edx
lea esi, [ebp + 0x16]
mov dl, byte [edi + 0x80b4]
sub eax, edx
and ecx, 0xffff
xor edx, edx
push esi
div ecx
mov word [esi], dx
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
mov word [ebp + 0x18], 0
mov byte [ebp + 0x1a], 0
mov byte [ebp + 0x1b], 0
mov al, byte [ebx + 0x112]
add esp, 4
test al, al
jne 0x10160ee2
mov cl, byte [ebx + 0xb]
cmp cl, 1
jne 0x10160ed4
mov al, byte [ebx + 0xa]
cmp al, cl
jbe 0x10160ed4
mov byte [ebp + 0x1b], al
jmp 0x10160ee2
cmp cl, 2
jne 0x10160ee2
cmp byte [ebx + 0xa], 1
jbe 0x10160ee2
mov byte [ebp + 0x1b], cl
mov al, byte [ebx + 0x24]
test al, al
jne 0x10160eed
mov byte [ebp + 0x24], 3
mov word [ebp + 0x26], 0x80
mov al, byte [ebx + 0x78]
test al, 0x80
je 0x10160f00
mov byte [ebp + 0x77], 0x10
jmp 0x10160f04
mov byte [ebp + 0x77], 0
mov byte [ebp + 0x78], 2
mov byte [ebp + 0x79], 2
mov dl, byte [ebx + 3]
and dl, 0x30
cmp dl, 0x10
jne 0x10160f20
mov al, byte [ebx + 0x132]
mov byte [ebp + 0x79], al
mov al, 0x33
mov byte [ebp + 0xd8], 0
mov byte [ebp + 0x7a], al
mov byte [ebp + 0x7b], al
mov byte [ebp + 0xb3], al
mov eax, dword [esp + 0x34]
mov byte [ebp + 0xd5], 0
mov byte [ebp + 0xd4], 0
mov byte [ebp + 0xb2], 2
mov byte [ebp + 0xb5], 2
mov byte [ebp + 0xb4], 0
mov cl, byte [eax]
test cl, cl
je 0x10161002
mov cl, byte [eax + 1]
test cl, cl
je 0x10160f73
mov cl, byte [eax + 2]
mov byte [ebp + 0x78], cl
mov cl, byte [eax + 3]
test cl, cl
je 0x10160f80
mov dl, byte [eax + 4]
mov byte [ebp + 0x79], dl
mov cl, byte [eax + 5]
test cl, cl
je 0x10160f8d
mov cl, byte [eax + 6]
mov byte [ebp + 0x7a], cl
mov cl, byte [eax + 7]
test cl, cl
je 0x10160f9a
mov dl, byte [eax + 8]
mov byte [ebp + 0x7b], dl
mov cl, byte [eax + 0xb]
test cl, cl
je 0x10160faa
mov cl, byte [eax + 0xc]
mov byte [ebp + 0xd9], cl
mov cl, byte [eax + 0x8c]
test cl, cl
je 0x10160fc0
mov dl, byte [eax + 0x8d]
mov byte [ebp + 0xb2], dl
mov cl, byte [eax + 0x92]
test cl, cl
je 0x10160fd6
mov cl, byte [eax + 0x93]
mov byte [ebp + 0xb5], cl
mov cl, byte [eax + 0x8e]
test cl, cl
je 0x10160fec
mov dl, byte [eax + 0x8f]
mov byte [ebp + 0xb3], dl
mov cl, byte [eax + 0x90]
test cl, cl
je 0x10161002
mov al, byte [eax + 0x91]
mov byte [ebp + 0xb4], al
mov al, byte [ebx + 0x26f]
test al, al
je 0x10161060
mov cl, byte [ebx + 0x273]
mov byte [ebp + 0x78], cl
mov dl, byte [ebx + 0x274]
mov byte [ebp + 0x79], dl
mov al, byte [ebx + 0x270]
mov byte [ebp + 0x7a], al
mov cl, byte [ebx + 0x271]
mov byte [ebp + 0x7b], cl
mov dl, byte [ebx + 0x278]
mov byte [ebp + 0xb3], dl
mov al, byte [ebx + 0x277]
mov byte [ebp + 0xb2], al
mov cl, byte [ebx + 0x27a]
mov byte [ebp + 0xb5], cl
mov dl, byte [ebx + 0x279]
mov byte [ebp + 0xb4], dl
lea esi, [ebp + 0x88]
add edi, 0x10
mov dword [esp + 0x28], 2
lea eax, [edi - 0x10]
push ebx
push eax
call sym.ITEuDllvMgr.dll_SDKFAddress2RawAddress
lea ecx, [edi - 8]
push ebx
push ecx
mov dword [esi - 8], eax
call sym.ITEuDllvMgr.dll_SDKFAddress2RawAddress
push ebx
push edi
mov dword [esi], eax
call sym.ITEuDllvMgr.dll_SDKFAddress2RawAddress
lea edx, [edi + 8]
push ebx
push edx
mov dword [esi + 8], eax
call sym.ITEuDllvMgr.dll_SDKFAddress2RawAddress
add esp, 0x20
cmp eax, 0xffffffff
mov dword [esi + 0x10], eax
jne 0x101610af
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
lea eax, [esi - 8]
push eax
call sym.ITEuDllvMgr.dll_SwapDWORD
push esi
mov dword [esi - 8], eax
call sym.ITEuDllvMgr.dll_SwapDWORD
mov dword [esi], eax
lea eax, [esi + 8]
push eax
call sym.ITEuDllvMgr.dll_SwapDWORD
mov dword [esi + 8], eax
lea eax, [esi + 0x10]
push eax
call sym.ITEuDllvMgr.dll_SwapDWORD
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x38]
add esp, 0x10
add edi, 4
add esi, 4
dec eax
mov dword [esp + 0x28], eax
jne 0x10161071
mov eax, dword [esp + 0x2c]
lea esi, [ebp + 0x7c]
push esi
mov ecx, dword [eax + 0x20]
mov dword [ebp + 0xa0], ecx
mov edx, dword [eax + 0x28]
xor ecx, ecx
mov ax, 0x40
mov cl, byte [ebp + 5]
mov dword [ebp + 0xa4], edx
shr ecx, 4
shl ax, cl
mov word [ebp + 0x7e], 0x80
shr ax, 1
mov word [esi], ax
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [esi], ax
xor eax, eax
mov al, byte [ebp + 0x10]
xor ecx, ecx
mov cl, byte [ebp + 0xa]
mov word [ebp + 0xd6], 0
cdq
idiv ecx
add esp, 4
lea esi, [ebx + 0x8c]
lea edi, [ebp + 0x100]
mov ecx, 8
mov byte [ebp + 0x12], al
mov dl, byte [ebx + 0x253]
mov byte [ebp + 0x31], dl
mov al, byte [ebx + 0xf6]
mov byte [ebp + 0x2b], al
cmp al, 0x20
rep movsd dword es:[edi], dword [esi]
jbe 0x10161184
lea esi, [ebx + 0x133]
lea edi, [ebp + 0x120]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp + 0x140]
lea esi, [ebx + 0x153]
mov ecx, 0x10
xor al, al
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x30]
mov esi, 4
mov byte [ebp + 0xb1], al
mov dword [esp + 0x2c], esi
lea edi, [ecx + 0xc]
cmp byte [edi], 0
je 0x101611ca
mov dl, 1
mov ecx, esi
shl dl, cl
mov cl, byte [ebp + 0xb1]
or cl, dl
inc al
mov byte [ebp + 0xb1], cl
mov ecx, dword [esp + 0x2c]
inc edi
inc esi
dec ecx
mov dword [esp + 0x2c], ecx
jne 0x101611af
mov cl, byte [ebp + 0xb1]
mov esi, dword [esp + 0x38]
or cl, al
lea edi, [ebp + 0x180]
mov byte [ebp + 0xb1], cl
mov al, byte [esi + 0x40]
mov byte [ebp + 0xb0], al
mov dword [esp + 0x2c], 0x20
mov cx, word [esi]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ecx
call sym.ITEuDllvMgr.dll_SwapWORD
mov word [edi], ax
mov eax, dword [esp + 0x30]
add esp, 4
add esi, 2
add edi, 2
dec eax
mov dword [esp + 0x2c], eax
jne 0x10161200
mov eax, dword [esp + 0x30]
mov cl, byte [eax + 0x497]
test cl, cl
je 0x1016124b
cmp byte [ebx + 0x7c], 6
je 0x1016124b
mov cl, byte [ebx + 8]
and cl, 0xc0
cmp cl, 0x80
je 0x1016124b
or byte [ebp + 0x24], 8
cmp byte [ebx + 0xf0], 1
jne 0x10161295
mov al, byte [ebp + 7]
lea esi, [ebx + 0xb0]
mov ecx, 0x10
lea edi, [ebp + 0x140]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp + 0x24]
add ebx, 0xf4
or cl, 0x30
or al, 2
push ebx
mov byte [ebp + 0x24], cl
mov byte [ebp + 7], al
call sym.ITEuDllvMgr.dll_SwapWORD
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add esp, 4
mov word [edx], ax
mov word [ecx], ax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret