Function at 0x830ec0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
push ebx
push esi
push edi
push 0x8b08a8
call fcn.0083dad0
add esp, 4
xor ebx, ebx
mov esi, eax
mov dword [ebp - 0x84], 0x30
push ebx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x80], 3
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [ebp + 8]
push 0x101
push edi
mov dword [ebp - 0x70], eax
call dword [sym.imp.USER32.dll_LoadIconW]
push 3
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], ebx
call fcn.00846d50
mov eax, dword [ebp + 0x10]
push eax
push 0x8d2230
call fcn.0083e269
add esp, 0xc
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x7c], 0x830c30
push ecx
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
jne 0x830f61
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [0x8d3780], edi
call fcn.0040e6b0
push esi
push esi
call dword [0x8d38cc]
test eax, eax
je 0x831616
fld qword [0x88f578]
fld qword [0x88f578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x896460]
fsub st(1)
fxch st(1)
fmul qword [0x896458]
fadd qword [0x896450]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x896448]
fnstsw ax
test ah, 0x41
jne 0x830fc1
fld st(0)
fmul qword [0x896440]
fsubp st(2)
fadd qword [0x896438]
fcom qword [0x896430]
fnstsw ax
test ah, 1
jne 0x830f88
fxch st(1)
fst qword [ebp - 0x54]
fxch st(1)
fstp st(0)
fcomp qword [0x88f578]
fnstsw ax
test ah, 1
je 0x83100d
mov byte [0x9760a05b], al
pop esp
movsd dword es:[edi], dword [esi]
push ebx
pushal
and al, 0x72
outsb dx, byte [esi]
jnp 0x831059
sub ah, byte [ebx]
jb 0x831023
je 0x831034
arpl word [ebp + 0x3e], sp
xor ch, byte [edx]
jp switch.0x0083105d
inc esp
inc edx
jmp 0x8315f8
mov dword [ebp - 0x28], 0x830fea
mov dword [ebp - 0x34], 0x830ff2
xor eax, eax
mov byte [ebp + eax - 0x1a0], al
inc eax
cmp eax, 0x100
inc dword [eax + 0x3d]
add byte [ecx], al
add byte [eax], al
jb 0x83101d
fld qword [ebp - 0x54]
mov byte [ebp + 8], 0
mov eax, 0xff
inc dword [eax]
add byte [eax], al
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 8], eax
jmp 0x831044
xor ebx, ebx
mov dword [ebp + 0x10], ebx
mov ebx, 1
cmp eax, ebx
jbe 0x831058
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x831050
cmp edi, 3
inc dword [ebx]
ja case.default.0x83105d
jmp dword [edi*4 + 0x83172c]
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x1a0]
jmp 0x8310d9
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x1a0]
shr eax, 8
jmp 0x8310d9
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x1a0]
shr eax, 0x10
jmp 0x8310d9
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x1a0]
shr eax, 0x18
jmp 0x8310d9
mov edx, dword [ebp - 0x34]
and esi, 0xff
mov cl, byte [edx + edi - 4]
mov al, byte [ebp + esi - 0x1a0]
add cl, al
inc edi
cmp edi, 0x1a
mov byte [ebp + 8], cl
jb 0x8310ec
xor edi, edi
add cl, 0x1a
mov byte [ebp + 8], cl
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp + 0x10], eax
jbe 0x83110c
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, edx
jb 0x831058
je 0x831144
mov bl, byte [ebp + eax - 0x1a0]
lea edx, [ebp + edx - 0x1a0]
lea ecx, [ebp + eax - 0x1a0]
mov al, byte [edx]
xor bl, al
mov byte [ecx], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ecx]
mov dl, bl
xor al, dl
mov byte [ecx], al
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 8], eax
jne 0x831042
mov cl, byte [ebp - 0x199]
and esi, 0xff
mov byte [ebp - 0x10], cl
xor ecx, ecx
mov al, byte [ebp + esi - 0x1a0]
mov esi, dword [ebp - 0x28]
mov byte [ebp - 0x20], al
xor eax, eax
mov cl, byte [esi]
mov al, byte [esi + 1]
add ecx, 0xffffff6a
sub al, 0x53
shl ecx, 4
or al, cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov byte [ebp - 0x1c], al
mov bl, byte [ebp - 0x19d]
mov dl, byte [ebp - 0x19b]
mov al, byte [ebp + ecx - 0x1a0]
lea esi, [ebp + ecx - 0x1a0]
mov ecx, dword [ebp - 0x19f]
mov byte [ebp + 0x10], al
mov eax, ecx
mov dword [ebp - 8], 1
and eax, 0xff
fstp st(0)
mov al, byte [ebp + eax - 0x1a0]
add al, bl
inc cl
mov byte [ebp - 0x18], al
mov byte [ebp + 8], cl
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
lea edi, [ebp + ecx - 0x1a0]
mov cl, byte [ebp + ecx - 0x1a0]
mov byte [esi], cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
lea ecx, [ebp + ecx - 0x1a0]
mov byte [edi], bl
mov ebx, dword [ebp + 8]
and ebx, 0xff
mov dword [ebp - 0x14], ecx
lea ebx, [ebp + ebx - 0x1a0]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [ecx], bl
mov ebx, dword [ebp - 4]
mov cl, byte [ebp + 0x10]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x10]
and ecx, 0xff
mov dword [ebp - 0xc], ecx
mov bl, byte [ebp + ecx - 0x1a0]
add dl, bl
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 0x24], dl
mov ecx, dword [ebp - 0x24]
mov bl, byte [ebx]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x1a0]
add ecx, ebx
mov bl, byte [esi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
mov cl, byte [edi]
mov edi, dword [ebp - 0xc]
mov bl, byte [ebp + ebx - 0x1a0]
add ecx, edi
and ecx, 0xff
xor bl, byte [ebp + ecx - 0x1a0]
mov cl, byte [ebp - 0x1c]
mov byte [ebp - 0x20], cl
xor bl, cl
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x10], bl
lea esi, [ecx + 2]
mov bl, byte [esi + 1]
xor ecx, ecx
mov cl, byte [esi]
sub bl, 0x53
sub ecx, 0x96
mov dword [ebp - 0x34], 2
shl ecx, 4
or bl, cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov byte [ebp - 0x1c], bl
lea edi, [ebp + ecx - 0x1a0]
mov cl, byte [ebp + ecx - 0x1a0]
mov byte [ebp + 0x10], cl
mov ecx, dword [ebp - 4]
mov bl, byte [ecx]
add al, bl
mov bl, byte [ebp + 8]
mov byte [ebp - 0x18], al
inc bl
mov ecx, dword [ebp - 0x18]
mov byte [ebp + 8], bl
and ecx, 0xff
lea esi, [ebp + ecx - 0x1a0]
mov dword [ebp - 4], esi
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
lea ecx, [ebp + ecx - 0x1a0]
mov byte [esi], bl
mov esi, dword [ebp + 8]
and esi, 0xff
mov dword [ebp - 0x14], ecx
mov bl, byte [ebp + esi - 0x1a0]
lea esi, [ebp + esi - 0x1a0]
mov byte [ecx], bl
mov cl, byte [ebp + 0x10]
mov byte [esi], cl
mov ecx, dword [ebp + 0x10]
and ecx, 0xff
mov dword [ebp - 0xc], ecx
mov bl, byte [ebp + ecx - 0x1a0]
add dl, bl
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 0x24], dl
mov ecx, dword [ebp - 0x24]
mov bl, byte [ebx]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x1a0]
add ecx, ebx
mov bl, byte [edi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
mov ecx, dword [ebp - 4]
mov edi, ebx
mov bl, byte [ecx]
mov ecx, dword [ebp - 0xc]
add ebx, ecx
mov cl, byte [ebp + edi - 0x1a0]
and ebx, 0xff
xor cl, byte [ebp + ebx - 0x1a0]
mov bl, byte [ebp - 0x1c]
mov byte [ebp - 0x20], bl
xor cl, bl
mov ebx, dword [ebp - 8]
mov byte [ebp - 0x10], cl
movsx cx, cl
mov word [ebp - 0x30], cx
mov ecx, dword [ebp - 0x28]
lea edi, [ecx + 2]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x38], ecx
jmp 0x8313ba
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x38]
inc ebx
add ecx, 2
add edi, 2
mov dword [ebp - 0x38], ecx
xor ecx, ecx
mov cl, byte [edi]
mov dword [ebp - 8], ebx
xor ebx, ebx
sub ecx, 0x96
mov bl, byte [edi + 1]
mov dword [ebp - 0x50], edi
sub ebx, 0x53
shl ecx, 4
or cl, bl
mov bl, byte [ebp + 8]
mov byte [ebp - 0x1c], cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
lea edi, [ebp + ecx - 0x1a0]
mov cl, byte [ebp + ecx - 0x1a0]
mov byte [ebp + 0x10], cl
mov cl, byte [esi]
add al, cl
inc bl
mov byte [ebp - 0x18], al
mov byte [ebp + 8], bl
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
lea esi, [ebp + ecx - 0x1a0]
mov dword [ebp - 4], esi
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
lea ecx, [ebp + ecx - 0x1a0]
mov byte [esi], bl
mov esi, dword [ebp + 8]
and esi, 0xff
mov dword [ebp - 0x14], ecx
mov bl, byte [ebp + esi - 0x1a0]
lea esi, [ebp + esi - 0x1a0]
mov byte [ecx], bl
mov cl, byte [ebp + 0x10]
mov byte [esi], cl
mov ecx, dword [ebp + 0x10]
and ecx, 0xff
mov dword [ebp - 0xc], ecx
mov bl, byte [ebp + ecx - 0x1a0]
add dl, bl
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 0x24], dl
mov ecx, dword [ebp - 0x24]
mov bl, byte [ebx]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x1a0]
add ecx, ebx
mov bl, byte [edi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x1a0]
mov ecx, dword [ebp - 4]
mov edi, ebx
mov bl, byte [ecx]
mov ecx, dword [ebp - 0xc]
add ebx, ecx
mov cl, byte [ebp + edi - 0x1a0]
and ebx, 0xff
xor cl, byte [ebp + ebx - 0x1a0]
mov bl, byte [ebp - 0x1c]
mov byte [ebp - 0x20], bl
xor cl, bl
mov ebx, dword [ebp - 8]
test ebx, ebx
mov byte [ebp - 0x10], cl
jbe 0x8314df
mov edi, dword [ebp - 0x38]
movsx cx, cl
mov word [edi], cx
mov ecx, dword [ebp - 0x34]
dec ecx
mov dword [ebp - 0x34], ecx
jne 0x8313b7
mov ecx, dword [ebp - 0x1c]
inc ebx
and ecx, 0xff
lea esi, [ebp + ecx - 0x1a0]
mov cl, byte [ebp + ecx - 0x1a0]
mov byte [ebp + 0x10], cl
mov ecx, dword [ebp + 8]
and ecx, 0xff
add al, byte [ebp + ecx - 0x1a0]
mov byte [ebp - 0x18], al
mov al, byte [ebp + 8]
inc al
mov byte [ebp + 8], al
mov eax, dword [ebp - 0x18]
and eax, 0xff
mov cl, byte [ebp + eax - 0x1a0]
lea edi, [ebp + eax - 0x1a0]
mov eax, dword [ebp - 0x10]
mov byte [esi], cl
and eax, 0xff
mov cl, byte [ebp + eax - 0x1a0]
lea eax, [ebp + eax - 0x1a0]
mov byte [edi], cl
mov ecx, dword [ebp + 8]
and ecx, 0xff
mov dword [ebp - 0x14], eax
test ebx, ebx
lea ecx, [ebp + ecx - 0x1a0]
mov dword [ebp - 4], ecx
mov cl, byte [ecx]
mov byte [eax], cl
mov ecx, dword [ebp - 4]
mov al, byte [ebp + 0x10]
mov byte [ecx], al
jbe 0x8315ed
mov eax, dword [ebp + 0x10]
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x28]
mov cl, byte [eax + ebx*2]
mov al, byte [eax + ebx*2 + 1]
sub cl, 6
sub al, 0x53
shl cl, 4
or cl, al
mov eax, dword [ebp - 0xc]
mov al, byte [ebp + eax - 0x1a0]
add al, dl
and eax, 0xff
mov dl, byte [ebp + eax - 0x1a0]
mov al, byte [esi]
add edx, eax
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
add edx, eax
xor eax, eax
and edx, 0xff
mov al, byte [ebp + edx - 0x1a0]
mov dl, byte [ebp + eax - 0x1a0]
xor cl, dl
mov dl, byte [edi]
add edx, dword [ebp - 0xc]
and edx, 0xff
xor cl, byte [ebp + edx - 0x1a0]
movsx ax, cl
mov word [ebp + ebx*2 - 0x32], ax
mov esi, dword [ebp - 0x4c]
mov word [ebp - 0x2a], 0
xor ebx, ebx
lea ecx, [ebp - 0x30]
push ecx
push 0x8d2230
call fcn.0083df34
add esp, 8
test eax, eax
jne 0x831616
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp - 0x70]
push ebx
mov eax, dword [ebp - 0x5c]
push edx
push ebx
push ebx
push 0x4b
push 0x118
push 0x64
push 0x64
push 0x10ca0000
push esi
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
cmp eax, ebx
mov dword [0x8d377c], eax
jne 0x831650
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x48]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call edi
mov edx, dword [ebp - 0x40]
push 1
sub eax, edx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
call edi
mov ecx, dword [ebp - 0x3c]
push 5
sub eax, ecx
push ebx
cdq
sub eax, edx
mov edx, dword [0x8d377c]
sar eax, 1
push ebx
push eax
push esi
push ebx
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x8d377c]
push eax
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x8d377c]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebx
push ebx
push ebx
push 0x830e00
push ebx
push ebx
call esi
push ebx
push ebx
push ebx
push 0x830d30
push ebx
push ebx
call esi
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push ebx
push ebx
lea eax, [ebp - 0xa0]
push ebx
push eax
call esi
test eax, eax
je 0x831715
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea ecx, [ebp - 0xa0]
push ecx
call edi
lea edx, [ebp - 0xa0]
push edx
call ebx
push 0
push 0
lea eax, [ebp - 0xa0]
push 0
push eax
call esi
test eax, eax
jne 0x8316f0
call fcn.00846df0
mov eax, dword [ebp - 0x98]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10