Function at 0x457644
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xfc
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], 0x1928c176
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
push esi
push edi
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x50], ecx
je 0x457686
push 0
push 0x1c84
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov esi, dword [sym.imp.USER32.dll_IsZoomed]
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x45769b
call ebx
push eax
call esi
xor ecx, ecx
mov dword [ebp - 0x18], 0x69ad59e5
mov dword [ebp - 4], 0
inc ecx
jmp 0x4576bc
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x54], 7
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x4576ae
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x4576d6
call edi
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x54], eax
push ecx
mov dword [ebp - 0x10], 0xfffffffc
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x20], 0xffffffff
call fcn.004113a6
xor edx, edx
mov dword [ebp - 4], 0
inc edx
jmp 0x457711
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x457702
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x457744
push 0x1dc1
push 0x1e42
push 0xca6
push 0x1bad
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x457753
call ebx
push eax
call esi
lea ecx, [ebp - 0xb8]
call fcn.00411478
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 8], 0xfffffffa
mov dword [ebp - 4], 0xc42206dd
mov dword [ebp - 4], 0
jmp 0x45778d
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xec], 0xfffffff7
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x45777c
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0xffffffe6
jne 0x45780b
xor edi, edi
inc edi
mov dword [ebp - 4], 0xfffffffc
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 4]
neg esi
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
sbb esi, esi
xor ecx, ecx
neg esi
cmp eax, 0x74952f34
setle cl
imul eax, ecx, 0xffff
mov ecx, dword [ebp - 4]
sub ecx, eax
mov eax, dword [ebp - 4]
cmp edi, ecx
sbb edx, edx
xor ecx, ecx
neg edx
sub edx, 2
cmp edx, eax
mov eax, 0xdebf889e
setg cl
cmp eax, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
add ecx, dword [ebp - 4]
cmp esi, ecx
setg al
mov dword [ebp - 4], eax
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffe6
je 0x4577a3
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor esi, esi
mov dword [ebp - 8], 0
inc esi
cmp dword [ebp - 8], 0xffffffeb
jg 0x457865
mov dword [ebp - 0x28], 0x886a6c65
mov dword [ebp - 4], esi
cmp dword [ebp - 4], 0
jl 0x457860
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], 0
jl 0x457858
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x457853
push 0x1709
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
dec dword [ebp - 0x14]
jns 0x45783b
dec dword [ebp - 0x28]
dec dword [ebp - 4]
jns 0x45782b
dec dword [ebp - 8]
jmp 0x457815
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 0x45f1dbec
mov dword [ebp - 0x18], 0x37ad4351
mov dword [ebp - 0x18], 0xe923e64f
mov dword [ebp - 4], 0x11
jmp 0x457898
mov dword [ebp - 0x14], 2
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffeb
jne 0x457888
mov dword [ebp - 4], ebx
jmp 0x4578b0
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xd4], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x4578a3
mov dword [ebp - 0x14], esi
lea ecx, [ebp - 0x4c]
push 4
call fcn.004113a6
mov dword [ebp - 0x28], 0x8f9c3281
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xf47f
push 3
call fcn.004113a6
mov dword [ebp - 8], 0xfc0266d9
mov dword [ebp - 0x20], 0xae883781
mov dword [ebp - 8], ebx
jmp 0x457900
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], 0xa3df603f
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x4578f0
mov dword [ebp - 8], ebx
jmp 0x457919
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], 0xfffffffe
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x45790b
mov dword [ebp - 8], ebx
jmp 0x457936
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0xf947f9f4
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x457923
mov dword [ebp - 0x14], ebx
jmp 0x4579a6
mov dword [ebp - 8], 0x654fddd3
mov dword [ebp - 0x28], 0x68cd5467
mov dword [ebp - 8], ebx
jmp 0x45799d
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x2c], 0xfffffffd
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
jne 0x457985
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
je 0x45797b
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, ebx
cmp dword [ebp - 0x18], esi
jge 0x457987
mov eax, esi
mov dword [ebp - 0x28], eax
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp ecx, eax
setle dl
mov dword [ebp - 0x2c], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jle 0x457954
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe4
jge 0x457941
cmp dword [ebp - 0x14], ebx
je 0x457a24
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x4c]
cmp eax, dword [esi + 8]
setl cl
xor ebx, ebx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x4c]
imul eax, ecx
cmp dword [edx + 4], eax
mov eax, dword [ebp - 0x88]
sete bl
sub ebx, 0xfffffff7
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp ebx, dword [edx]
setge cl
mov dword [eax + 8], ecx
xor eax, eax
cmp dword [esi + 8], ecx
sete al
xor edx, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setl dl
xor ebx, ebx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ebx
je 0x457a24
mov dword [ebp - 0x18], 0xffd02046
dec dword [ebp - 0x20]
jmp 0x457a9b
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x20], 0x49dda4ad
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x20], 3
mov dword [ebp - 4], ebx
jmp 0x457a81
mov dword [ebp - 0x2c], 0xca5e
mov ecx, 0xa8b0
mov dword [ebp - 0x30], 0xd35
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x31
jl 0x457a45
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x457a9b
push 0x6fb
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [ebp - 0x88]
call fcn.00411478
lea ecx, [ebp - 0x4c]
call fcn.00411478
xor esi, esi
cmp dword [ebp - 0x10], ebx
je 0x457f48
mov eax, 0xa5d6c05b
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xe4], eax
inc esi
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 0x7fbf2121
mov dword [ebp - 0x18], 0x7d7c118
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 0xe32cf41
mov dword [ebp - 0x18], 0xd6b65720
mov dword [ebp - 0x18], 0x1943c6fe
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x18], 0xffffffff
push 3
mov dword [ebp - 0x18], ebx
pop edi
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x18], 0xd7f19125
mov dword [ebp - 0x18], 0xfffffffb
push edi
call fcn.004113a6
mov dword [ebp - 8], ebx
jmp 0x457b6d
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xfc], 0x6b43d271
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x457b5c
mov dword [ebp - 8], ebx
jmp 0x457b87
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x457b78
mov dword [ebp - 4], edi
cmp dword [ebp - 4], ebx
jl 0x457bab
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x457ba6
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetKeySecurity]
dec dword [ebp - 4]
jns 0x457b94
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0xac]
inc dword [eax]
call fcn.00411478
push esi
lea ecx, [ebp - 0xc4]
call fcn.004113a6
push 2
lea ecx, [ebp - 0x60]
call fcn.004113a6
mov dword [ebp - 8], ebx
jmp 0x457be9
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x457bd9
mov dword [ebp - 8], ebx
jmp 0x457c03
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0x453606de
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x457bf3
mov eax, dword [ebp - 0x60]
mov dword [eax], ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x20], 0xfffffffe
push esi
call fcn.004113a6
mov dword [ebp - 4], ebx
jmp 0x457c3c
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 0xc28cae2f
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x457c29
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
jl 0x457cbb
push esi
lea ecx, [ebp - 0xa0]
call fcn.004113a6
mov dword [ebp - 0x14], ebx
jmp 0x457c6d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xc07c2076
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x457c5a
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x60]
sub ecx, 0x3161
add ecx, dword [eax]
mov eax, dword [ebp - 4]
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx
test eax, eax
je 0x457ca1
mov eax, dword [ebp - 0xa0]
mov ecx, esi
cmp dword [eax], ebx
jne 0x457ca3
mov ecx, ebx
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
lea ecx, [ebp - 0xa0]
call fcn.00411478
dec dword [ebp - 4]
jns 0x457c49
lea ecx, [ebp - 0x94]
call fcn.00411478
mov eax, dword [ebp - 0x60]
dec dword [eax]
jns 0x457c0e
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x457ce5
push 0xc92
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
lea ecx, [ebp - 0x60]
call fcn.00411478
lea ecx, [ebp - 0xc4]
call fcn.00411478
mov byte [ebp - 0x19], bl
lea ecx, [ebp - 0x7c]
push edi
call fcn.004113a6
mov dword [ebp - 8], ebx
jmp 0x457d19
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x77862fd4
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x457d09
push 2
mov dword [ebp - 8], ebx
pop ecx
jmp 0x457d34
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x38], 0xf57a7c20
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x457d26
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x34], ebx
jl 0x457dc5
mov dword [ebp - 4], 0xfffffffd
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], ebx
jl 0x457d76
mov byte [ebp - 9], bl
cmp byte [ebp - 9], 0
je 0x457d71
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
dec dword [ebp - 4]
jns 0x457d54
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x7c]
cmp dword [eax + ecx*4], ebx
je 0x457d8e
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x7c]
cmp dword [eax + ecx*4], ebx
jne 0x457dc5
jmp 0x457dbd
mov dword [ebp - 0x24], 0x4a0d
mov dword [ebp - 0x20], 0xbb101eb
mov dword [ebp - 0x24], 0xffff
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
neg eax
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x34]
push 2
pop ecx
jns 0x457d45
lea ecx, [ebp - 0x7c]
call fcn.00411478
cmp byte [ebp - 0x19], 0
je 0x457fe4
mov dword [ebp - 0x14], 0xd4e06482
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x18], 0x62db8e96
push esi
call fcn.004113a6
push 0xfffffffffffffff8
pop eax
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x2c], 0xa4f6
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 4], 0xd89c1c50
mov dword [ebp - 0x2c], ebx
push edi
call fcn.004113a6
mov dword [ebp - 8], ebx
jmp 0x457e3a
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x457e2e
mov dword [ebp - 8], ebx
jmp 0x457e57
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x457e44
mov dword [ebp - 0x14], 7
jmp 0x457e8f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x457e8c
push 0x5fc
push 0x2228
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 9
jne 0x457e65
cmp dword [ebp - 0x14], ebx
jne 0x457f11
mov eax, dword [ebp - 0x14]
dec eax
je 0x457f11
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 4]
setl dl
xor ecx, ecx
cmp edx, 0x6ffe
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x70]
setne dl
xor ecx, ecx
cmp dword [eax], edx
setge cl
cmp ecx, 0xfff9
sbb eax, eax
neg eax
cmp eax, 0x231a2955
jg 0x457ee0
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, dword [ebp - 0x70]
cmp dword [edx], 0x4418f7f2
setle cl
xor eax, eax
cmp ecx, 0x4f9f
setg al
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x24]
cmp eax, esi
mov eax, esi
cmove eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0xd0]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], esi
call fcn.00411478
lea ecx, [ebp - 0x70]
call fcn.00411478
push ebx
push 0xd22
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
jmp 0x457fe4
mov dword [ebp - 4], 0xb441791e
mov dword [ebp - 0x18], 3
cmp dword [ebp - 0x10], ebx
je 0x457f84
mov eax, dword [ebp - 0x10]
add eax, 0x8068
imul eax, dword [ebp - 0x10]
sub eax, 0x478c9dff
inc esi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
jmp 0x457f85
inc esi
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setl dl
xor ebx, ebx
cmp edx, 0xffffffff
setne bl
xor ecx, ecx
cmp ebx, eax
setle cl
xor eax, eax
test ecx, ecx
setns al
xor ebx, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 0x1a
jle 0x457fe1
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x457fdc
call edi
inc dword [ebp - 0x10]
jmp 0x457fcc
push 3
pop edi
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 4], 4
mov dword [ebp - 0x2c], 0x8c83b913
mov dword [ebp - 8], 0xba27438e
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x30], esi
mov dword [ebp - 4], ebx
jmp 0x458024
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x40], 0x3e7a3298
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x458016
mov dword [ebp - 0x10], ebx
jmp 0x4580fe
mov dword [ebp - 0x24], 0x213a
mov dword [ebp - 0x14], 0x3380ee91
mov dword [ebp - 0x20], 0x74defc7
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
je 0x458066
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
sub eax, 0xfffc
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x24]
jg 0x458087
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 4], 0xfffffffa
sbb eax, eax
or ecx, 0xffffffff
inc eax
sub ecx, eax
xor eax, eax
add ecx, dword [ebp - 0x24]
cmp ecx, 0xffffffff
setne al
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x20]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, 0xfc1c5751
jb 0x4580bf
cmp dword [ebp - 0x10], ebx
je 0x4580c6
mov eax, ebx
cmp dword [ebp - 0x14], ebx
jne 0x4580c8
mov eax, esi
mov dword [ebp - 4], eax
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setne dl
sub eax, edx
add eax, dword [ebp - 0x30]
je 0x4580e5
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
sub edx, 0x7d436f9d
cmp edx, eax
setl cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x13
jge 0x458031
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
test eax, eax
sets cl
sub ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
neg ecx
inc dword [ebp - 0x28]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0xffffffff
mov eax, dword [ebp - 0x10]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setl dl
xor ebx, ebx
cmp eax, edx
setl bl
sub ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp ebx, eax
setne cl
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jl 0x458199
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x458194
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetParent]
dec dword [ebp - 0x10]
jns 0x458176
push esi
push 0x12db
push dword [ebp + 8]
push esi
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x50]
call fcn.004581ba
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret