Function at 0x758c40
Capabilities:
Execute anti-debugging instructions
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x10]
mov esi, dword [esi + 0xc]
mov edx, dword [edx]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0xa4]
mov ecx, dword [ecx + 4]
mov ebp, dword [edi]
mov dword [esp + 0x48], eax
add eax, 3
sub ebx, 1
mov dword [esp + 0x58], esi
lea esi, [ebx + ebx]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x64], eax
nop
cmp eax, ebx
jbe 0x758cb0
neg eax
test eax, eax
jns 0x758ca0
add eax, esi
cmp eax, ebx
ja 0x758ca4
imul eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x64]
mov eax, dword [ebp + eax*4]
mov edx, ecx
test eax, eax
je 0x759003
lea esi, [esi]
cmp edx, ebx
jbe 0x758ce0
neg edx
test edx, edx
jns 0x758cd0
add edx, esi
cmp edx, ebx
ja 0x758cd4
imul edx, dword [esp + 0xa8]
mov edx, dword [ebp + edx*4]
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0x48]
add edi, 4
mov eax, edi
lea esi, [esi]
cmp eax, ebx
jbe 0x758d10
neg eax
test eax, eax
jns 0x758d00
add eax, esi
cmp eax, ebx
ja 0x758d04
imul eax, dword [esp + 0xa8]
mov ecx, edi
mov edx, edi
mov eax, dword [ebp + eax*4]
test eax, eax
je 0x75905b
cmp edx, ebx
jbe 0x758d38
neg edx
test edx, edx
jns 0x758d28
add edx, esi
cmp edx, ebx
ja 0x758d2c
imul edx, dword [esp + 0xa8]
mov edx, dword [ebp + edx*4]
mov dword [esp + 0x60], edx
rdtsc
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x6c], edx
test eax, eax
jle 0x758d67
cmp dword [esp + 0xa4], edi
jg 0x759223
mov ebx, dword [esp + 0xa4]
cmp dword [esp + 0x64], ebx
jae 0x758db5
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x758db5
mov esi, dword [esp + 0x60]
xor ecx, ecx
mov edi, dword [esp + 0x58]
lea esi, [esi]
movsx edx, word [edi + ecx*2]
movsx eax, word [esi + ecx*2]
add eax, edx
mov edx, dword [esp + 0x5c]
lea eax, [eax + eax*2 + 4]
sar eax, 3
sub word [edx + ecx*2], ax
add ecx, 1
cmp ecx, dword [esp + 0xa0]
jne 0x758d90
mov eax, dword [esp + 0x48]
add eax, 2
cmp dword [esp + 0xa4], eax
jbe 0x758dfa
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x758dfa
mov ecx, dword [esp + 0x5c]
xor edx, edx
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
nop
movzx eax, word [ecx + edx*2]
neg eax
sub ax, word [ebx + edx*2]
add word [esi + edx*2], ax
add edx, 1
cmp edx, dword [esp + 0xa0]
jne 0x758de0
mov eax, dword [esp + 0x48]
add eax, 1
cmp dword [esp + 0xa4], eax
jbe 0x758e4f
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x758e4f
mov edi, dword [esp + 0x54]
xor ebx, ebx
mov esi, dword [esp + 0x58]
nop
mov eax, dword [esp + 0x50]
movzx ecx, word [edi + ebx*2]
movsx edx, word [eax + ebx*2]
movsx eax, word [esi + ebx*2]
lea edx, [edx + eax + 8]
movsx eax, cx
lea eax, [edx + eax*4]
sar eax, 4
add ecx, eax
mov word [edi + ebx*2], cx
add ebx, 1
cmp ebx, dword [esp + 0xa0]
jne 0x758e20
mov edi, dword [esp + 0x48]
cmp dword [esp + 0xa4], edi
jbe 0x758e98
mov eax, dword [esp + 0xa0]
test eax, eax
jle 0x758fa4
mov ebx, dword [esp + 0x4c]
xor ecx, ecx
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
movsx eax, word [edx + ecx*2]
movsx edx, word [ebx + ecx*2]
add eax, edx
lea eax, [eax + eax*2]
sar eax, 1
add word [esi + ecx*2], ax
add ecx, 1
cmp ecx, dword [esp + 0xa0]
jne 0x758e75
cmp dword [esp + 0xa0], 0x190
jle 0x758fa4
rdtsc
mov edi, dword [0xe73cb0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
cmp edi, 1
jle 0x759289
mov ebx, dword [0xe73cc0]
mov ecx, edi
mov esi, dword [0xe73cc4]
sub eax, dword [esp + 0x68]
sbb edx, dword [esp + 0x6c]
sar ecx, 0x1f
mov dword [esp + 0x30], eax
mov eax, ebx
mov dword [esp + 0x34], edx
mov edx, esi
shld edx, eax, 3
shl eax, 3
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00aa2320
cmp edx, 0
ja 0x758f15
cmp eax, 0x7d0
jae 0x758f15
mov eax, 0x7d0
xor edx, edx
cmp dword [esp + 0x34], edx
ja 0x758f2b
jb 0x759295
cmp dword [esp + 0x30], eax
jb 0x759295
add dword [0xe73ca0], 1
mov ecx, dword [0xe73ca0]
lea edx, [ecx + edi]
lea eax, [edx - 1]
test edx, eax
jne 0x758fa4
mov dword [esp + 0x1c], ecx
mov eax, 0xa
mov ebx, edi
mul dword [0xe73cc0]
imul ecx, dword [0xe73cc4], 0xa
sar ebx, 0x1f
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
lea edx, [ecx + edx]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0xb67b4e
call fcn.00aa2320
mov dword [esp + 8], 0xb67a38
mov dword [esp + 4], 2
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0090e610
rdtsc
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x7c], edx
sub eax, 1
cmp eax, dword [esp + 0xa4]
jb 0x759202
mov esi, dword [esp + 0x48]
cmp dword [esp + 0xa4], esi
ja 0x7590b2
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
add dword [esi + 0x10], 2
mov dword [esi], edi
mov dword [esi + 4], eax
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
add ecx, esi
cmp ecx, ebx
jbe 0x759011
neg ecx
test ecx, ecx
js 0x759001
cmp ecx, ebx
ja 0x759007
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 8]
test edx, edx
js 0x7592e6
imul ecx, dword [esp + 0xa8]
mov edi, dword [ebp + ecx*4]
test edi, edi
mov dword [esp + 0x5c], edi
jne 0x758cf0
mov edi, dword [esp + 0x3c]
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x5c], eax
lea eax, [edx - 1]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + ecx*4], eax
jmp 0x758cf0
add ecx, esi
cmp ecx, ebx
jbe 0x75906a
nop
neg ecx
test ecx, ecx
js 0x759059
cmp ecx, ebx
ja 0x759060
mov ebx, dword [esp + 0x3c]
mov edx, dword [ebx + 8]
test edx, edx
js 0x7592e6
imul ecx, dword [esp + 0xa8]
mov esi, dword [ebp + ecx*4]
test esi, esi
mov dword [esp + 0x60], esi
jne 0x758d48
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x60]
lea eax, [edx - 1]
mov dword [ebx + 8], eax
mov dword [ebp + ecx*4], esi
jmp 0x758d48
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xbb4]
cmp edi, 0x190
jle 0x758fd3
rdtsc
mov edi, dword [0xe73c80]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
cmp edi, 1
jle 0x7592d5
mov ebx, dword [0xe73c90]
mov ecx, edi
mov esi, dword [0xe73c94]
sub eax, dword [esp + 0x78]
sbb edx, dword [esp + 0x7c]
sar ecx, 0x1f
mov dword [esp + 0x28], eax
mov eax, ebx
mov dword [esp + 0x2c], edx
mov edx, esi
shld edx, eax, 3
shl eax, 3
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00aa2320
cmp edx, 0
ja 0x759149
cmp eax, 0x7d0
jb 0x75927d
cmp dword [esp + 0x2c], edx
lea esi, [esi]
ja 0x7592c9
jae 0x7592bf
sub ebx, dword [esp + 0x78]
sbb esi, dword [esp + 0x7c]
add ebx, dword [esp + 0x80]
adc esi, dword [esp + 0x84]
add edi, 1
mov dword [0xe73c80], edi
mov dword [0xe73c90], ebx
mov dword [0xe73c94], esi
mov ecx, dword [0xe73c70]
lea edx, [ecx + edi]
lea eax, [edx - 1]
test edx, eax
jne 0x758fd3
mov dword [esp + 0x1c], ecx
mov eax, 0xa
mov ebx, edi
mul dword [0xe73c90]
imul ecx, dword [0xe73c94], 0xa
sar ebx, 0x1f
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
lea edx, [ecx + edx]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0xb67b62
call fcn.00aa2320
mov dword [esp + 8], 0xb67a38
mov dword [esp + 4], 2
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0090e610
jmp 0x758fd3
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [ebx + 0xbb4]
jmp 0x758fc2
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ecx + 0xbb0]
cmp dword [esp + 0xa0], 0x190
jg 0x758ea9
jmp 0x758fa4
mov eax, 0x7d0
xor edx, edx
jmp 0x759149
mov ebx, dword [0xe73cc0]
mov esi, dword [0xe73cc4]
sub ebx, dword [esp + 0x68]
sbb esi, dword [esp + 0x6c]
add ebx, dword [esp + 0x70]
adc esi, dword [esp + 0x74]
add edi, 1
mov dword [0xe73cb0], edi
mov dword [0xe73cc0], ebx
mov dword [0xe73cc4], esi
jmp 0x758f32
cmp dword [esp + 0x28], eax
jb 0x75915c
add dword [0xe73c70], 1
jmp 0x759187
mov ebx, dword [0xe73c90]
mov esi, dword [0xe73c94]
jmp 0x75915c
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0xb67a81
mov dword [esp], 0xb67ccb
call sub.msvcrt.dll__assert
lea esi, [esi]
lea edi, [edi]