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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov dword [esp + 0x60], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x2c], edx
jmp 0xa917b2
lea ebx, [0xa9177f]
lea esi, [0xa91796]
lea ebp, [0xa9179a]
dec esi
dec ebp
sub esi, ebx
sub ebp, ebx
lea eax, [0xa917b2]
sub eax, ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
jmp 0xa9180f
lea ebx, [0xa917e4]
lea esi, [0xa917f3]
lea ebp, [0xa917f7]
dec esi
dec ebp
sub esi, ebx
sub ebp, ebx
lea eax, [0xa9180f]
sub eax, ebx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], ebx
mov edx, eax
sar edx, 0x1f
idiv ecx
test eax, eax
mov dword [esp + 0x48], eax
jle 0xa91b08
mov edx, dword [esp + 0x2c]
xor ebp, ebp
xor ebx, ebx
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
add edx, edx
mov dword [esp + 0x64], edx
not edi
add edx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x64]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x2c]
sub esi, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
mov ecx, ebp
neg edx
mov dword [esp + 0x4c], edx
xor edx, edx
mov dword [esp + 0x6c], esi
jmp 0xa91a6a
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0xa91acf
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], 3
sar ebp, 0x10
sub ebp, eax
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x64]
add ebp, edx
sar ebp, 0x10
sub ebp, eax
cmp esi, 2
mov eax, dword [esp + 0xb0]
setle byte [esp + 0x53]
movzx edx, byte [esp + 0x53]
mov dword [esp + 0x38], edx
add edx, esi
mov dword [esp + 0x28], edx
shl esi, 6
sub dword [esp + 0x3c], edx
mov edx, dword [esp + 0x2c]
add edx, edi
and edx, 0xffff
sar edx, 9
mov word [eax + ebx*2], dx
mov edx, edi
and edx, 0xffff
sar edx, 9
mov word [eax + ebx*2 + 2], dx
mov edx, dword [esp + 0x68]
add edx, edi
and edx, 0xffff
sar edx, 9
mov word [eax + ebx*2 + 4], dx
mov edx, dword [esp + 0x6c]
add edx, edi
and edx, 0xffff
sar edx, 9
mov word [eax + ebx*2 + 6], dx
mov edx, dword [esp + 0xb4]
mov eax, ebx
sar eax, 1
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov dword [edx], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x30]
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
add edx, dword [esp + 0x38]
add eax, ecx
add eax, dword [esp + 0x24]
shl edx, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
add eax, ebp
shl eax, 4
or eax, edx
mov edx, dword [esp + 0x28]
or al, byte [esp + 0x53]
shl ebp, 4
shl edx, 6
or eax, edx
mov edx, dword [esp + 0x30]
mov byte [edx], al
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
add eax, ecx
add eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
shl eax, 2
or eax, ebp
or eax, esi
mov esi, dword [esp + 0x28]
mov byte [esi], al
lea eax, [ebx + 4]
sub eax, dword [esp + 0x38]
cmp dword [esp + 0x60], eax
jle 0xa91a28
mov ebp, dword [esp + 0x44]
mov edx, dword [ebp]
and edx, 3
cmp dword [esp + 0x3c], edx
jl 0xa91a4d
cmp ebx, edx
jl 0xa91a4d
test edx, edx
je 0xa91a4d
mov esi, 0x55
mov ebp, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x30]
imul eax, edx
add byte [esi], al
mov esi, dword [esp + 0x44]
add byte [ebp], al
sub dword [esi], edx
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x40]
mov byte [eax + ecx], 0xc3
add ebx, 1
mov edx, dword [esp + 0x20]
add edi, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x48]
je 0xa91ad5
mov ebp, dword [esp + 0x2c]
test bl, 3
lea ebp, [edx + ebp]
mov dword [esp + 0x20], ebp
jne 0xa91a59
mov esi, dword [esp + 0x5c]
mov eax, edx
sar eax, 0x10
mov dword [esp + 0x18], eax
add esi, edx
sar esi, 0x10
sub esi, eax
cmp esi, 2
jg 0xa918b0
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0xa918dc
add ecx, dword [esp + 0x40]
jmp 0xa91a59
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
imul edx, ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0xa91afd
mov ebp, dword [esp + 0xb4]
sar ebx, 1
add ebx, 1
and ebx, 0xfffffffe
sar edx, 0x10
mov dword [ebp + ebx*4], edx
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
xor ebx, ebx
xor edx, edx
jmp 0xa91adf