Function at 0x4303e6
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
mov dword [ebp - 0x1c], 0xb0cb
xor eax, eax
push ebx
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov dword [ebp - 0x24], 0xed3
inc ebx
mov dword [ebp - 4], 0xa7a8
mov dword [ebp - 0x18], 0x131e34f9
push esi
mov dword [ebp - 0xc], ebx
push edi
mov byte [ebp - 0x29], dl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x10], eax
jmp 0x430435
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x148], 0x49cec79e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x430424
mov dword [ebp - 0x10], eax
jmp 0x430451
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x88], 0x628405ce
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x430440
mov dword [ebp - 0x10], eax
jmp 0x43046a
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x40], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x43045c
mov dword [ebp - 0x10], eax
jmp 0x430481
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x18c], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x430474
mov ecx, dword [ebp - 0x18]
dec dword [ebp - 0x18]
test ecx, ecx
je 0x43049d
cmp dword [ebp - 0x14], eax
je 0x43049d
mov ecx, ebx
cmp dword [ebp - 0x24], eax
jne 0x43049f
mov ecx, eax
cmp ecx, dword [ebp - 0xc]
jl 0x4304b3
cmp dword [ebp - 0xc], eax
je 0x4304b3
mov edx, ebx
cmp dword [ebp - 0x140], eax
jne 0x4304b5
mov edx, eax
mov ecx, dword [ebp - 0x40]
dec dword [ebp - 0x40]
cmp ecx, edx
mov ecx, ebx
cmovg ecx, eax
inc dword [ebp - 0x84]
mov edi, dword [ebp - 0x84]
xor ebx, ebx
cmp ecx, 0xf3e4
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x24]
setle bl
inc ebx
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, ecx
mov ecx, dword [ebp - 0x1c]
setl dl
sub ecx, edi
sub ecx, dword [ebp - 4]
sub esi, edx
neg ecx
sbb ecx, ecx
inc ecx
imul esi, ecx
xor ecx, ecx
cmp esi, 0xaa2a
setle cl
or edx, 0xffffffff
mov dword [ebp - 0x184], ecx
cmp edx, ecx
mov dword [ebp - 0x140], ecx
sbb ecx, ecx
xor edi, edi
neg ecx
inc edi
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 0xda7fe64f
mov dword [ebp - 0xc], eax
push edi
call fcn.00430073
mov dword [ebp - 0x24], 0xfffffff7
xor eax, eax
mov dword [ebp - 0x1c], 0x520a
push 2
mov dword [ebp - 0x20], 0x21779538
pop esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], eax
jmp 0x43056f
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + edx*4], 0x3f8de905
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x43055c
mov dword [ebp - 0x10], eax
jmp 0x43058a
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x138], 8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x430579
mov dword [ebp - 0x10], eax
jmp 0x4305a6
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x168], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x430595
mov dword [ebp - 0x10], eax
jmp 0x4305be
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x12c], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x4305b1
cmp dword [ebp - 4], eax
je 0x4305da
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 4]
jge 0x4305ee
mov ecx, edi
cmp dword [ebp - 4], eax
jne 0x4305f0
mov ecx, eax
cmp edi, ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 4], eax
jne 0x43062e
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xb0]
dec esi
mov edx, dword [ebp - 0xc]
push 2
sub esi, dword [ecx]
mov ecx, dword [ebp - 4]
neg esi
sbb esi, esi
xor ebx, ebx
inc esi
imul edx, esi
pop esi
cmp edx, ecx
mov ecx, dword [ebp - 0xb0]
setge bl
sub ebx, dword [ecx]
mov dword [ecx], ebx
mov edx, dword [ebp - 0x130]
xor ebx, ebx
mov ecx, dword [ebp - 4]
cmp edx, ecx
mov edx, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x128]
setg bl
imul edx, ebx
xor ebx, ebx
cmp edx, ecx
setle bl
xor ecx, ecx
test ebx, ebx
mov dword [ebp - 0x160], ebx
setne cl
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], eax
je 0x430673
mov ecx, edi
cmp dword [ebp - 0x130], eax
jne 0x430675
mov ecx, eax
mov eax, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0xb0]
call fcn.00430145
push dword [ebp + 8]
movdqa xmm0, xmmword [str._b_b_b_b]
lea ecx, [ebp - 0x148]
push ecx
xor eax, eax
lea ecx, [ebp - 0x158]
push ecx
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
movdqu xmmword [ebp - 0x158], xmm0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
call fcn.004301b6
mov dword [ebp - 0x24], esi
xor edx, edx
mov dword [ebp - 4], 0x110e6b6c
push 0xfffffffffffffffb
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0x2ce33a90
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 0x4c]
cmp dword [esi + 4], ecx
setle dl
xor ebx, ebx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], edx
mov ecx, dword [ebp - 0x18]
setg bl
xor edx, edx
cmp ebx, ecx
sete dl
cmp edx, dword [ebp - 0x18]
jge 0x430768
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], eax
jne 0x430768
mov dword [ebp - 0x24], 0xa3e2
inc dword [ebp - 0x24]
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x430813
push 0x1170
push eax
push 0xd90
push 0xd4e
push 0x1b17
push eax
push 0xfd0
push 0x4f7
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawIconEx]
jmp 0x430813
mov dword [ebp - 0x18], 2
lea ecx, [ebp - 0x10c]
push 4
call fcn.00430073
xor esi, esi
mov dword [ebp - 0xc], esi
jmp 0x430796
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10c]
mov dword [eax + ecx*4], 6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x430783
mov dword [ebp - 4], esi
cmp dword [ebp - 4], 0xfffffff7
je 0x430808
mov edi, dword [ebp - 0x10c]
xor eax, eax
mov dword [ebp - 0xc], 0xb47e0fa1
inc eax
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
sub eax, 0x56201118
imul ecx, eax
mov eax, dword [ebp - 0x4c]
cmp ecx, dword [eax]
setl dl
xor eax, eax
or ecx, 0xffffffff
mov dword [edi + 4], edx
cmp edx, ecx
setg al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0xc], esi
jne 0x430805
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff7
jne 0x4307ab
xor edi, edi
inc edi
lea ecx, [ebp - 0x10c]
call fcn.00430145
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
call fcn.00430145
mov eax, dword [0x4bb9fc]
mov dword [ebp - 0x24], eax
or eax, 0xffffffff
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xc], 0xa
jmp 0x430931
push edi
lea ecx, [ebp - 0xa4]
call fcn.00430073
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x430863
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xa4]
mov dword [ecx + edx*4], 0xde0b
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x430850
mov dword [ebp - 4], eax
jmp 0x43087b
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x34], 0xfffffffc
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x43086d
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], eax
jl 0x430923
mov dword [ebp - 4], 0x8f0aa6e6
mov dword [ebp - 4], eax
jmp 0x4308ec
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 4], eax
jne 0x4308a6
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov edx, 0xa1e1c5a3
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
cmp edx, ecx
mov ecx, dword [ebp - 0x34]
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [ebp - 0xa4]
setl bl
xor edx, edx
cmp dword [ecx + esi*4], ebx
sete dl
mov dword [ebp - 0x1c], edx
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x4308e9
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
inc dword [ebp - 4]
cmp dword [ebp - 4], eax
jle 0x430898
mov dword [ebp - 4], eax
cmp dword [ebp - 4], eax
jl 0x43091a
mov dword [ebp - 0x1c], 0xb551fa4c
mov esi, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edx + ecx*4]
add ecx, dword [edx + esi*4]
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 4]
jns 0x4308f9
dec dword [ebp - 0x34]
jns 0x43088c
lea ecx, [ebp - 0xa4]
call fcn.00430145
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff2
jle 0x43083d
mov esi, dword [ebp + 8]
xor eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_IsValidCodePage]
or ecx, 0xffffffff
mov dword [ebp - 4], 2
mov dword [ebp - 0x10], 6
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], 0xd3fd9053
mov byte [ebp - 5], al
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
cmp byte [ebp - 5], al
je 0x43097d
push 0xd5f
call edi
xor eax, eax
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 4]
imul ecx, dword [ebp - 0x10], 0xfff8
cmp ecx, edx
setle bl
xor edx, edx
add ebx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ebx, ecx
mov ecx, dword [ebp - 4]
setle dl
xor ebx, ebx
sub ecx, edx
inc ebx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 4], ebx
je 0x430a62
mov dword [ebp - 0x14], 8
xor edx, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov ecx, 0xc6f0d4a7
setg dl
cmp ecx, edx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0xc0c7
je 0x430a11
mov ecx, eax
cmp dword [ebp - 0x14], eax
je 0x430a13
mov ecx, ebx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], 0xdcb0c7b2
cmp dword [ebp - 0x18], eax
jne 0x430a53
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add ecx, 0x30732bab
je 0x430a49
mov ecx, ebx
cmp dword [ebp - 0x14], eax
jne 0x430a4b
mov ecx, eax
cmp ecx, dword [ebp - 4]
jne 0x430a53
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
xor edx, edx
test ecx, ecx
setle dl
mov dword [ebp - 0x14], edx
jmp 0x430a83
mov dword [ebp - 0x14], eax
jmp 0x430a7d
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x430a7a
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1d
jg 0x430a67
cmp byte [ebp - 0x29], 0
je 0x430c02
cmp dword [ebp - 0x24], ebx
jne 0x430c02
mov dword [ebp - 0xc], 5
mov dword [ebp - 0x20], 7
mov dword [ebp - 0xc], 9
mov dword [ebp - 0xc], 3
jmp 0x430acf
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x430acc
push eax
push 0x1492
push eax
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
xor eax, eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffee
jg 0x430ab4
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xe8]
push 2
mov dword [esi + 8], 4
call fcn.00430073
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x430b01
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x38], 0x648261f
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x430af3
mov dword [ebp - 4], eax
jmp 0x430b1e
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xe8]
mov dword [ecx + edx*4], 9
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x430b0b
mov dword [ebp - 4], eax
jmp 0x430b4b
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x430b48
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_UpdateColors]
xor eax, eax
inc dword [ebp - 4]
cmp dword [ebp - 4], eax
jle 0x430b29
mov dword [ebp - 4], eax
cmp dword [ebp - 4], eax
jl 0x430bf0
jmp 0x430b61
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov ecx, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x38]
sub esi, ecx
mov ecx, dword [ebp - 4]
add esi, dword [ebp + ecx*4 - 0x38]
mov ecx, dword [ebp - 4]
cmp ecx, esi
mov ecx, dword [ebp - 4]
setne dl
cmp edx, ebx
mov ecx, dword [ebp + ecx*4 - 0x38]
sbb edx, edx
xor ebx, ebx
inc edx
cmp ecx, edx
setge bl
sub ebx, 6
neg ebx
sbb ebx, ebx
inc ebx
sub ebx, dword [ebp - 0x18]
jne 0x430ba9
cmp dword [ebp - 0x38], eax
jne 0x430ba9
mov esi, eax
jmp 0x430bac
xor esi, esi
inc esi
mov ecx, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x38]
cmp ecx, esi
mov ecx, dword [ebp - 0x38]
setg dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [ebp - 0x38]
setle bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0x18]
setle dl
mov dword [ebp - 0x1c], edx
xor edx, edx
cmp dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xe8]
setle dl
mov dword [ecx], edx
dec dword [ebp - 4]
jns 0x430b5e
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0xe8]
call fcn.00430145
mov dword [esi + 0xc], 0x4bb9fc
mov dword [ebp - 4], 2
or eax, 0xffffffff
mov dword [ebp - 0x10], 6
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x14], 0xd3fd9053
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x430c30
push 0xd5f
call edi
xor eax, eax
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 4]
imul ecx, dword [ebp - 0x10], 0xfff8
cmp ecx, edx
setle bl
xor edx, edx
add ebx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ebx, ecx
mov ecx, dword [ebp - 4]
setle dl
xor ebx, ebx
sub ecx, edx
inc ebx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 4], ebx
je 0x430d15
mov dword [ebp - 0x14], 8
xor edx, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
test ecx, ecx
mov ecx, 0xc6f0d4a7
setg dl
cmp ecx, edx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0xc0c7
je 0x430cc4
mov ecx, eax
cmp dword [ebp - 0x14], eax
je 0x430cc6
mov ecx, ebx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], 0xdcb0c7b2
cmp dword [ebp - 0x18], eax
jne 0x430d06
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add ecx, 0x30732bab
je 0x430cfc
mov ecx, ebx
cmp dword [ebp - 0x14], eax
jne 0x430cfe
mov ecx, eax
cmp ecx, dword [ebp - 4]
jne 0x430d06
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
xor edx, edx
test ecx, ecx
setle dl
mov dword [ebp - 0x14], edx
jmp 0x430d36
mov dword [ebp - 0x14], eax
jmp 0x430d30
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x430d2d
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1d
jg 0x430d1a
mov esi, dword [ebp - 0x28]
cmp esi, dword [ebp - 0x24]
jge 0x4314e5
mov dword [ebp - 0xc], 0xc588
or ecx, 0xffffffff
mov dword [ebp - 0x14], 9
xor ebx, ebx
mov dword [ebp - 0x1c], 4
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 4], 0x82a10aa4
mov dword [ebp - 0x10], 0x8b6b0e1b
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], 2
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp ecx, 0xfc35327
mov ecx, dword [ebp - 0x30]
setg bl
xor edx, edx
cmp ebx, ecx
setl dl
xor ecx, ecx
cmp edx, 0x2c7a
setne cl
sub ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x1c]
setl bl
xor edx, edx
sub ebx, 0x9873
cmp ebx, ecx
setle dl
or ebx, 0xffffffff
cmp edx, ebx
jne 0x430de4
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
dec dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
je 0x430e87
mov ecx, 0x3780d777
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x30], 0xfffffffe
mov dword [ebp - 0x30], 7
mov dword [ebp - 4], 3
cmp dword [ebp - 4], eax
jl 0x430ee4
mov dword [ebp - 0x1c], 0x16fefd5
inc dword [ebp - 0x1c]
mov dword [ebp - 0xc], 3
cmp dword [ebp - 0xc], eax
jl 0x430e7d
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov edx, dword [ebp + ecx*4 - 0xdc]
mov ecx, dword [ebp - 0x20]
cmp ecx, edx
mov ecx, dword [ebp - 4]
setg bl
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0xdc]
cmp ecx, ebx
setne dl
mov dword [ebp - 0x30], edx
dec dword [ebp - 0xc]
jns 0x430e50
dec dword [ebp - 4]
jns 0x430e3a
or ebx, 0xffffffff
jmp 0x430ee4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x13
jg 0x430ee4
xor esi, esi
push 4
lea ecx, [ebp - 0x124]
call fcn.00430073
mov dword [ebp - 0xc], esi
jmp 0x430eb7
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0xfffa
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x430ea4
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x124]
dec dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 4], eax
call fcn.00430145
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x13
jle 0x430e92
mov esi, dword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x18], 0xec2e0cf5
mov edi, 0x4bba00
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0x52d8cb4c
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], eax
jmp 0x430f13
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xc4], 0x8654
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x430f02
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jne 0x430f38
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x430f33
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
xor eax, eax
inc dword [ebp - 0x18]
je 0x430f21
inc dword [ebp - 0xc4]
test esi, esi
jle 0x431179
push 4
lea ecx, [ebp - 0x98]
call fcn.00430073
mov dword [ebp - 0x1c], 0xfffffffd
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x1c], 0x7d8cf4c5
push 2
call fcn.00430073
mov dword [ebp - 0x20], 0x2db8e964
xor esi, esi
xor edx, edx
mov dword [ebp - 0x18], 0x7289fff1
mov dword [ebp - 4], esi
inc edx
cmp dword [ebp - 4], 4
jge 0x430f9b
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], edx
inc dword [ebp - 4]
jmp 0x430f84
mov dword [ebp - 4], esi
jmp 0x430fb3
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x100]
mov dword [eax + ecx*4], 7
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x430fa0
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebx + 4]
test eax, eax
je 0x430fd3
mov dword [ebp - 0x1c], eax
mov ecx, esi
mov eax, dword [ebx + 4]
cmp eax, dword [ebp - 0x1c]
jle 0x430fd5
mov ecx, edx
mov edx, dword [ebx + 4]
sub edx, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x98]
setge cl
xor edx, edx
cmp ecx, dword [ebx + 4]
setne dl
xor ecx, ecx
cmp edx, dword [eax + 8]
mov eax, dword [ebp - 0x100]
setne cl
mov dword [eax], ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x100]
dec dword [ebp - 0x18]
call fcn.00430145
lea ecx, [ebp - 0x98]
call fcn.00430145
mov eax, dword [edi]
lea ecx, [ebp - 0xbc]
push 2
pop ebx
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 4]
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], esi
push ebx
mov dword [ebp - 0x1c], eax
call fcn.00430073
mov dword [ebp - 0x18], 0x636717b3
xor eax, eax
mov dword [ebp - 0x20], 0x81b5f7a0
or ecx, 0xffffffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], eax
jmp 0x431072
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + edx*4], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x43105f
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 4], edx
sub edx, ecx
sub edx, dword [ebp - 0xc]
add edx, dword [ebp - 4]
cmp dword [ebp - 0xc], edx
jle 0x4310ad
mov ecx, dword [ebp - 0xbc]
cmp dword [ecx], eax
je 0x4310ad
xor esi, esi
inc esi
mov edx, esi
jmp 0x4310b2
xor esi, esi
mov edx, eax
inc esi
mov ecx, dword [ebp - 4]
sub edx, ecx
sub edx, 0x900b
je 0x4310c4
cmp dword [ebx + 4], eax
jne 0x4310c6
mov esi, eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp esi, ecx
sete dl
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0xc]
xor ecx, ecx
cmp dword [ebx + 4], eax
setne cl
xor edx, edx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
cmp eax, 5
mov eax, dword [ebp - 4]
setg dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
setge cl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0xbc]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.00430145
add edi, 8
cmp dword [ebp - 0x1c], 0
jne 0x43112b
add edi, 8
xor eax, eax
mov dword [ebp - 0xc], 0xfd3df75d
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xfffffff0
jge 0x431165
xor esi, esi
inc esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0x35f394a2
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x43115c
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
xor eax, eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff0
jl 0x431140
add edi, dword [ebp - 0x10]
dec dword [ebp - 0x28]
jne 0x430f46
xor eax, eax
mov dword [ebp - 0x14], edi
or ebx, 0xffffffff
mov ecx, dword [edi]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
jmp 0x43118d
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x80], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x431183
mov dword [ebp - 0x7c], 0xfffffff1
cmp dword [ebp - 0x7c], 0xc
jne 0x4312e7
xor edi, edi
mov esi, 0x17633efc
inc edi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], 0x6cd219fa
mov dword [ebp - 4], 3
cmp dword [ebp - 4], eax
jl 0x43127a
or esi, 0xffffffff
mov dword [ebp - 0x28], 0xa81a82e7
mov dword [ebp - 0x1c], 0x33147f59
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x20], 0xbeac3efc
mov ecx, dword [ebp - 4]
cmp dword [ebp + ecx*4 - 0x70], eax
jne 0x431218
mov ecx, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x70]
cmp ecx, edi
setne dl
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 4]
mov ecx, eax
jg 0x43121a
mov ecx, edi
cmp ecx, dword [ebp - 0x70]
jle 0x431226
mov ecx, edi
cmp dword [ebp - 0x28], eax
jne 0x431228
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
cmp esi, ecx
sbb ecx, ecx
xor ebx, ebx
neg ecx
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x64]
cmp edx, ecx
mov ecx, dword [ebp - 4]
setle bl
xor edx, edx
add ebx, 0x19d4a9f7
mov ecx, dword [ebp + ecx*4 - 0x70]
cmp ecx, ebx
sete dl
add edx, dword [ebp - 0x6c]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
jne 0x431275
dec dword [ebp - 4]
jns 0x4311d8
mov esi, 0x17633efc
mov dword [ebp - 4], 0xffffffea
cmp dword [ebp - 4], 6
jg 0x4312d7
or esi, 0xffffffff
mov dword [ebp - 0x20], 0x5e45
xor ebx, ebx
mov dword [ebp - 0x1c], edi
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x7c]
cmp edx, ecx
setl bl
xor edx, edx
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x1c]
cmp ecx, esi
setne dl
xor ebx, ebx
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xfffffff9
mov ecx, dword [ebp - 0x28]
setne bl
xor edx, edx
cmp ebx, ecx
setl dl
mov dword [ebp - 0x20], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], 6
jle 0x43128a
mov esi, 0x17633efc
inc dword [ebp - 0x7c]
cmp dword [ebp - 0x7c], 0xc
je 0x4311ac
mov edi, dword [ebp - 0x14]
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x431300
push 0x1103
push eax
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
xor eax, eax
mov ecx, dword [edi + 4]
xor edx, edx
mov dword [ebp - 0xc], 0x83c7730f
mov dword [ebp - 0x1c], 0xaf8b5131
mov dword [ebp - 0x14], 0xfa3a92bd
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0xc]
add esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
cmp esi, ecx
setl dl
xor ebx, ebx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
cmp ecx, edx
setne bl
add ebx, dword [ebp - 0xc]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 8
cmp dword [ebp - 0x14], eax
jge 0x43138b
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x43136e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
xor eax, eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x431386
push eax
push 0xe1f
push eax
call dword [sym.imp.GDI32.dll_GetRegionData]
xor eax, eax
dec dword [ebp - 0x14]
js 0x431356
or ecx, 0xffffffff
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], 0xfff7
mov dword [ebp - 0xc], eax
jmp 0x4313ae
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xcc], 0xb24ce554
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x43139d
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc8]
imul ecx, dword [ebp - 0x28], 0x690f
neg ecx
sbb ecx, ecx
inc ecx
test ecx, ecx
jle 0x43140c
mov dword [ebp - 0x1c], 8
dec dword [ebp - 0x1c]
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x431412
push eax
push 0xd6f
push 0x9f3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
xor eax, eax
jmp 0x431412
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x20], 0
jne 0x4314ea
cmp byte [ebp - 0x29], 0
mov esi, dword [ebp - 0x10]
je 0x431436
xor eax, eax
inc eax
cmp dword [ebp - 0x24], eax
jne 0x431436
mov ecx, dword [ebp + 8]
lea eax, [esi + 0x10]
add dword [ecx + 8], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0xc]
push esi
mov dword [ebp - 0x30], eax
call fcn.00489528
mov dword [ebp - 0x1c], eax
xor eax, eax
pop ecx
mov dword [ebp - 0x8c], eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.00461b75
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov ebx, dword [ebp - 0x60]
mov esi, eax
test ecx, ecx
jle 0x4314c2
mov eax, esi
and eax, 0x80000001
jns 0x431489
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x20]
add eax, esi
add eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x30]
jmp 0x43149e
lea eax, [edx + 1]
cdq
idiv ecx
xor eax, eax
cmp word [ebx + edx*2], ax
jne 0x43149b
xor ecx, ecx
inc ecx
mov word [ebx + edx*2], cx
mov cl, byte [edx + edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov byte [esi + edx], cl
inc esi
mov ecx, dword [ebp - 0x10]
cmp esi, ecx
jl 0x43147b
mov edi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 4], ecx
test ebx, ebx
je 0x4314ed
push ebx
call fcn.0048bec6
xor eax, eax
pop ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
jmp 0x4314ed
mov edi, dword [ebp + 8]
jmp 0x4314f0
mov edi, dword [ebp + 8]
xor ebx, ebx
inc ebx
mov dword [ebp - 0xc], 0x70ade216
mov dword [ebp - 4], 0xfffffff7
push 3
mov dword [ebp + 8], 0xf748bbe2
mov dword [ebp + 8], eax
pop esi
jmp 0x43151a
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x174], ebx
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
jl 0x43150d
mov dword [ebp + 8], eax
jmp 0x431532
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x3c], 0xc27f355c
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jl 0x431524
mov dword [ebp + 8], eax
cmp dword [ebp + 8], esi
jge 0x431554
or edx, 0xffffffff
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x180], edx
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
jl 0x431542
mov ecx, dword [ebp - 0xc]
inc ecx
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0x4c00
mov ecx, dword [ebp - 0xc]
setle bl
add ecx, dword [ebp - 0xc]
xor edx, edx
cmp ecx, ebx
setl dl
cmp edx, dword [ebp - 4]
jg 0x43159a
mov dword [ebp - 4], eax
jmp 0x431590
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x174], 0xd4a0d461
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x43157f
jmp 0x4316d3
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0xf4]
mov dword [ebp + 8], 0xa84b505d
push 2
call fcn.00430073
xor eax, eax
mov dword [ebp + 8], eax
jmp 0x4315c6
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x54], 6
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x4315b8
mov dword [ebp + 8], eax
cmp dword [ebp + 8], esi
jge 0x4315ea
xor esi, esi
inc esi
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x118], esi
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x4315d7
mov dword [ebp + 8], eax
jmp 0x431602
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xf4]
mov dword [ecx + edx*4], 0xfe2ccf58
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x4315ef
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x110], 0x8fbd
mov esi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
neg esi
sbb esi, esi
xor edx, edx
neg esi
sub esi, ecx
mov ecx, dword [ebp - 4]
cmp ecx, esi
setl dl
add edx, 0x5ff74f57
neg edx
sbb edx, edx
xor ebx, ebx
neg edx
mov dword [ebp + 8], edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
cmp edx, ecx
mov ecx, dword [ebp - 0x24]
setge bl
xor esi, esi
inc esi
cmp ebx, esi
sbb edx, edx
neg edx
inc dword [ebp - 0x24]
cmp ecx, edx
mov ecx, esi
cmove ecx, eax
or edx, 0xffffffff
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [ebp - 0x50]
setge bl
xor edx, edx
cmp ebx, ecx
setne dl
xor ebx, ebx
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x110]
cmp ecx, edx
setge bl
xor ecx, ecx
cmp ebx, 0xfffffff7
setne cl
xor edx, edx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0xc]
cmp dword [ebp + 8], ecx
mov ecx, dword [ebp - 0xf4]
setge dl
sub edx, dword [ecx]
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
cmp dword [ebp - 4], eax
jg 0x4316c0
cmp dword [ebp - 0x3c], eax
je 0x4316c2
mov eax, esi
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x180], eax
call fcn.00430145
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret