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

Disassembly:
mov al, byte [0xa28933]
sub esp, 0x148
test al, al
push ebp
mov ebp, ecx
jne 0x675fe8
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x675fe8
mov eax, dword [0xa255a0]
mov ecx, dword [0x82194c]
mov edx, dword [0x821944]
push ebx
mov al, byte [eax + 0x2239]
push esi
neg al
sbb eax, eax
push edi
and eax, 8
mov byte [esp + 0x13], 0
add eax, 0x12
sub ecx, eax
mov eax, dword [0xaa484c]
sub ecx, eax
mov eax, 0x51eb851f
lea ecx, [ecx + edx - 7]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
shl edx, 1
mov ebx, edx
mov dword [esp + 0x38], ebx
lea ecx, [ebx + ebx*2]
shl ecx, 4
add ecx, 4
push ecx
call fcn.0076d5a7
add esp, 4
test eax, eax
je 0x6759bf
mov dword [eax], ebx
lea esi, [eax + 4]
lea eax, [ebx - 1]
mov dword [esp + 0x34], esi
test eax, eax
jl 0x6759c1
add esi, 0x14
lea edi, [eax + 1]
mov ecx, esi
call fcn.00677b00
add esi, 0x30
dec edi
jne 0x6759ac
mov esi, dword [esp + 0x34]
jmp 0x6759c1
xor esi, esi
xor edx, edx
mov dword [esp + 0x30], esi
test ebx, ebx
jle 0x6759ff
mov edi, esi
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x50]
lea eax, [edx + eax*2]
cmp eax, ecx
jge 0x6759ef
lea ecx, [eax + eax*2]
shl ecx, 4
lea esi, [ecx + ebp + 0x54]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
inc edx
add edi, 0x30
cmp edx, ebx
mov dword [esp + 0x18], edi
jl 0x6759d1
mov eax, dword [ebp + 0x50]
mov byte [esp + 0x12], 0
test eax, eax
mov dword [esp + 0x20], 0
jle 0x675dd2
lea edx, [ebp + 0x54]
lea eax, [ebp + 0x84]
mov dword [esp + 0x1c], edx
lea ecx, [ebp + 0x58]
lea edx, [ebp + 0x60]
mov dword [esp + 0x28], 0x30
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
mov ecx, dword [eax]
call fcn.004829a0
mov ebx, eax
test ebx, ebx
je 0x675a89
mov eax, dword [0xa1e0c4]
mov edx, dword [ebx]
push eax
push 0
push 0
push 1
mov ecx, ebx
call dword [edx + 0x94]
test eax, eax
je 0x675aaf
mov ecx, dword [eax + 0x1b4]
push 1
push 0
push ebx
call fcn.004e2ba0
test eax, eax
jne 0x675d8b
jmp 0x675aaf
mov ecx, dword [0xa1e0c4]
mov eax, dword [edi]
cmp eax, dword [ecx + 0x1ac]
jae 0x675aaf
mov ecx, dword [ecx + 0x1a0]
mov edx, dword [ecx + eax*4]
xor eax, eax
mov al, byte [edx + 0x55]
test eax, eax
jne 0x675d8b
mov eax, dword [esp + 0x2c]
cmp dword [eax], 0
je 0x675b74
mov ecx, dword [esp + 0x14]
mov esi, dword [edi]
xor edx, edx
mov dl, byte [ebx + 0xada]
mov eax, dword [ecx]
push edx
push esi
push eax
mov eax, dword [0xa1e0c4]
push 0x10
mov ecx, dword [eax + 0x30]
push ecx
lea ecx, [esp + 0x8c]
call fcn.004b5e40
cmp dword [0xa1a648], 0x80
jge 0x675b43
mov ecx, dword [0xa1a650]
mov esi, eax
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
lea edi, [ecx + ecx*2 + 0xa1a654]
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0xa1a650]
mov edi, dword [esp + 0x1c]
mov dword [ecx*4 + 0xa1ddd4], eax
mov edx, dword [0xa1a650]
mov eax, dword [0xa1a648]
inc edx
and edx, 0x7f
inc eax
mov dword [0xa1a650], edx
mov dword [0xa1a648], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, 7
je 0x675b53
cmp eax, 6
jne 0x675b74
xor eax, eax
mov ecx, 0x81a800
push eax
mov dword [0x81b9a0], eax
mov dword [0x81b9a4], eax
mov dword [0x81b9a8], 0xffffffff
call fcn.00498ba0
xor esi, esi
cmp ebx, esi
je 0x675c60
mov cl, byte [ebx + 0xada]
mov edx, dword [ebx]
push esi
push ecx
mov ecx, ebx
call dword [edx + 0x2c]
mov ecx, dword [0xa1e0c4]
push eax
call fcn.004ea950
cmp eax, esi
mov dword [esp + 0x34], eax
je 0x675c60
mov eax, dword [eax + 0x4c]
dec eax
mov dword [esp + 0x18], eax
js 0x675c60
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 0x40]
cmp dword [edx + eax*4], ebx
jne 0x675c51
mov edx, dword [edi]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov cl, byte [ebx + 0xada]
push ecx
mov ecx, dword [eax]
push edx
mov edx, dword [0xa1e0c4]
push ecx
push 0x10
mov eax, dword [edx + 0x30]
lea ecx, [esp + 0xf8]
push eax
call fcn.004b5e40
cmp dword [0xa1a648], 0x80
jge 0x675c51
mov ecx, dword [0xa1a650]
mov esi, eax
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
lea edi, [ecx + ecx*2 + 0xa1a654]
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0xa1a650]
mov edi, dword [esp + 0x1c]
mov dword [ecx*4 + 0xa1ddd4], eax
mov edx, dword [0xa1a650]
mov eax, dword [0xa1a648]
inc edx
and edx, 0x7f
inc eax
mov dword [0xa1a650], edx
mov dword [0xa1a648], eax
xor esi, esi
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
jns 0x675bb3
mov eax, dword [esp + 0x38]
cmp eax, esi
jle 0x675cc9
mov edx, dword [esp + 0x30]
mov ebx, eax
mov eax, dword [edx]
mov ecx, dword [edi]
cmp eax, ecx
jne 0x675cc3
mov ecx, dword [edx + 4]
mov eax, dword [edi + 4]
cmp ecx, eax
jne 0x675cc3
mov ecx, dword [0xa2894c]
xor eax, eax
mov dword [esp + 0x54], ecx
mov ecx, 0xc
lea esi, [esp + 0x3c]
mov edi, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 1
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
xor esi, esi
add edx, 0x30
dec ebx
jne 0x675c6e
mov eax, dword [ebp + 0x50]
cmp eax, 1
jle 0x675cf7
mov ecx, dword [esp + 0x20]
lea edx, [eax - 1]
cmp ecx, edx
jge 0x675cf7
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*2]
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x24]
push eax
push ecx
push edi
call fcn.0076e820
add esp, 0xc
mov eax, dword [ebp + 0x50]
mov byte [esp + 0x12], 1
dec eax
mov byte [esp + 0x13], 1
lea edx, [eax + eax*2 + 6]
lea eax, [eax + eax*2]
shl eax, 4
shl edx, 4
add eax, ebp
mov dword [edx + ebp], esi
xor edx, edx
mov dword [eax + 0x54], esi
mov dword [eax + 0x58], esi
mov dword [eax + 0x5c], esi
mov dword [eax + 0x64], esi
mov dword [eax + 0x68], esi
mov ecx, dword [0xa2894c]
lea ebx, [eax + 0x6c]
mov dword [eax + 0x78], esi
mov dword [ebx], ecx
mov ecx, dword [esp + 0x70]
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + 8], edx
mov ebx, dword [esp + 0x28]
mov dword [eax + 0x80], esi
mov edx, dword [ebp + 0x50]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
dec edx
dec ecx
mov dword [ebp + 0x50], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, 0x30
sub eax, ecx
sub ebx, ecx
sub esi, ecx
sub edx, ecx
mov byte [ebp + 0x38], 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], edx
sub edi, ecx
jmp 0x675d90
mov ecx, 0x30
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add esi, ecx
add edx, ecx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x24]
add ebx, ecx
add esi, ecx
add edi, ecx
mov ecx, dword [ebp + 0x50]
inc eax
mov dword [esp + 0x28], edx
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], edi
jl 0x675a3e
mov eax, dword [ebp + 0x34]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [ecx + ecx*8]
lea ecx, [eax + edx*2]
lea ecx, [ecx + ecx*2]
mov edx, dword [ecx*4 + 0x81bd90]
test edx, edx
jle 0x675e85
mov ecx, 0x81a800
call fcn.006776d0
mov edx, dword [0x81f6d8]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*2]
lea edx, [ecx + ecx*2]
mov ecx, dword [edx*4 + 0x81bd90]
cmp ecx, eax
mov ecx, 0xaa46d0
jle 0x675e58
call fcn.004cebf0
test al, al
jne 0x675e37
mov ecx, 0xaa46d0
call fcn.004cebd0
mov ecx, 0xaa47a8
call fcn.004cebf0
test al, al
jne 0x675ef1
mov ecx, 0xaa47a8
call fcn.004cebd0
jmp 0x675ef1
call fcn.004cebf0
test al, al
je 0x675e6b
mov ecx, 0xaa46d0
call fcn.004cebe0
mov ecx, 0xaa47a8
call fcn.004cebf0
test al, al
je 0x675ef1
mov ecx, 0xaa47a8
call fcn.004cebe0
jmp 0x675ef1
lea ecx, [eax + eax*2]
shl ecx, 5
add ecx, 0xaa0fe8
call fcn.004cebe0
xor edx, edx
mov ecx, 0x81bd90
xor eax, eax
cmp dword [ecx], 0
jg 0x675eb9
add eax, 0xe64
inc edx
add ecx, 0xe64
cmp eax, 0x3990
jl 0x675e9f
jmp 0x675ebe
cmp edx, 0xffffffff
jne 0x675ee6
mov ecx, 0x81a800
call fcn.00671ec0
mov eax, dword [0xaa4818]
test eax, eax
je 0x675ef1
mov dword [0x81f6d4], 0xffffffff
movsx eax, word [eax + 6]
mov dword [0x81f6d0], eax
jmp 0x675ef1
push edx
mov ecx, 0x81a800
call fcn.00673000
mov al, byte [esp + 0x13]
test al, al
je 0x675fc1
mov edx, dword [esp + 0x38]
xor ecx, ecx
test edx, edx
jle 0x675f9e
mov ebx, dword [esp + 0x30]
mov eax, ebx
cmp dword [eax], 0
jne 0x675f27
mov esi, dword [eax + 4]
test esi, esi
jne 0x675f27
inc ecx
add eax, 0x30
cmp ecx, edx
jge 0x675f9e
jmp 0x675f11
mov edi, dword [ebp + 0x50]
test edi, edi
je 0x675f9e
xor esi, esi
mov eax, ecx
test edi, edi
jle 0x675f95
lea ecx, [eax + eax*2]
lea edx, [ebp + 0x54]
shl ecx, 4
add ecx, ebx
mov ebx, dword [ecx]
cmp dword [edx], ebx
jne 0x675f4f
mov ebx, dword [edx + 4]
cmp ebx, dword [ecx + 4]
je 0x675f59
inc esi
add edx, 0x30
cmp esi, edi
jge 0x675f95
jmp 0x675f41
sub eax, esi
mov ecx, dword [ebp + 0x40]
cdq
mov ebx, dword [esp + 0x38]
sub eax, edx
sar eax, 1
neg eax
add ecx, eax
mov eax, edi
sub eax, ebx
mov dword [ebp + 0x40], ecx
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
cmp ecx, eax
jl 0x675f7f
mov edx, eax
test edx, edx
jge 0x675f8a
xor eax, eax
mov dword [ebp + 0x40], eax
jmp 0x675fba
cmp ecx, eax
jge 0x675f90
mov eax, ecx
mov dword [ebp + 0x40], eax
jmp 0x675fba
mov dword [ebp + 0x40], 0
jmp 0x675fba
mov dword [ebp + 0x40], 0
mov ebp, dword [ebp + 0x34]
lea ecx, [ebp + ebp*2]
shl ecx, 5
add ecx, 0xaa0fe8
call fcn.004cebe0
mov byte [0x81f6e3], 1
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
test eax, eax
je 0x675fdc
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
dec ecx
push eax
call fcn.0076d2d5
add esp, 4
mov al, byte [esp + 6]
pop ebp
add esp, 0x148
ret
xor al, al
pop ebp
add esp, 0x148
ret