Function at 0x429f5c
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffcf4
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov eax, dword [0x4cd8f9]
push eax
call sym.ollydbg.exe__Findthread
pop ecx
test eax, eax
jne 0x429f83
or eax, 0xffffffff
jmp 0x42a70c
lea esi, [eax + 0x2ec]
mov eax, ebx
and eax, 0x1f0
mov edi, ebx
and edi, 0xf
cmp eax, 0xb0
jg 0x429fed
je 0x42a193
cmp eax, 0x50
jg 0x429fcd
je 0x42a09a
sub eax, 0x10
je 0x42a03e
sub eax, 0x10
je 0x42a05c
sub eax, 0x20
je 0x42a079
jmp 0x42a58d
sub eax, 0x60
je 0x42a0b7
sub eax, 0x10
je 0x42a137
sub eax, 0x10
je 0x42a16d
jmp 0x42a58d
cmp eax, 0x100
jg 0x42a01c
je 0x42a387
sub eax, 0xc0
je 0x42a1b8
sub eax, 0x20
je 0x42a247
sub eax, 0x10
je 0x42a2b7
jmp 0x42a58d
sub eax, 0x130
je 0x42a48e
sub eax, 0x10
je 0x42a515
sub eax, 0x10
je 0x42a307
jmp 0x42a58d
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [ebp - 0x10c]
push eax
push 0x4b4909
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov ecx, dword [esi + 0x2c]
lea eax, [ebp - 0x10c]
push ecx
push 0x4b4909
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov edx, dword [esi + edi*4 + 0x98]
lea ecx, [ebp - 0x10c]
push edx
push 0x4b53ce
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov eax, dword [esi + 0x30]
lea edx, [ebp - 0x10c]
push eax
push 0x4b4909
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov eax, dword [esi + 0x34]
add eax, edi
and eax, 0x80000007
jns 0x42a0c8
dec eax
or eax, 0xfffffff8
inc eax
xor edx, edx
mov dl, byte [esi + eax + 0x88]
and edx, 3
sub edx, 1
jb 0x42a0e6
je 0x42a0fb
dec edx
je 0x42a10f
dec edx
je 0x42a122
jmp 0x42a643
mov esi, str.valid
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x42a643
mov esi, str.zero
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x42a643
mov esi, 0x4b53de
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
jmp 0x42a643
mov esi, str.empty
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x42a643
mov eax, dword [esi + 0x34]
add eax, edi
and eax, 0x80000007
jns 0x42a148
dec eax
or eax, 0xfffffff8
inc eax
lea edx, [eax + eax*4]
lea eax, [ebp - 0x10c]
mov cx, word [esi + edx*2 + 0x40]
push ecx
push dword [esi + edx*2 + 0x3c]
push dword [esi + edx*2 + 0x38]
push eax
call sym.ollydbg.exe__Printfloat10
add esp, 0x10
jmp 0x42a643
mov edx, dword [esi + 0x90]
lea ecx, [ebp - 0x10c]
and edx, 0xffff
push edx
push 0x4b53ce
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov eax, dword [esi + 0x94]
lea edx, [ebp - 0x10c]
and eax, 0xffff
push eax
push 0x4b53ce
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov eax, dword [esi + 0x94]
mov edx, eax
and eax, 0x300
and edx, 0xc00
test eax, eax
mov dword [ebp - 4], edx
jne 0x42a1d9
mov ecx, 0x4b5276
jmp 0x42a1fa
cmp eax, 0x100
jne 0x42a1e7
mov ecx, 0x4b5279
jmp 0x42a1fa
cmp eax, 0x200
jne 0x42a1f5
mov ecx, 0x4b527c
jmp 0x42a1fa
mov ecx, 0x4b527f
push ecx
cmp dword [ebp - 4], 0
jne 0x42a208
mov eax, str.NEAR
jmp 0x42a22d
cmp dword [ebp - 4], 0x400
jne 0x42a218
mov eax, str.DOWN
jmp 0x42a22d
cmp dword [ebp - 4], 0x800
jne 0x42a228
mov eax, 0x4b5266
jmp 0x42a22d
mov eax, str.ZERO
push eax
push str._s__s
lea edx, [ebp - 0x10c]
push edx
call fcn.004a6c2c
add esp, 0x10
jmp 0x42a643
xor ecx, ecx
lea eax, [edi + edi*4]
mov dword [ebp - 4], ecx
mov ebx, ecx
cmp dword [ebp - 4], 8
lea edx, [esi + eax*2]
mov esi, edx
jge 0x42a643
cmp dword [ebp - 4], 0
je 0x42a282
mov eax, dword [ebp - 4]
and eax, 0x80000001
jns 0x42a275
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x42a282
mov byte [ebp + ebx - 0x10c], 0x20
inc ebx
mov edx, 7
xor ecx, ecx
sub edx, dword [ebp - 4]
lea eax, [ebp - 0x10c]
add eax, ebx
mov cl, byte [esi + edx + 0x38]
push ecx
push 0x4b52a2
push eax
call fcn.004a6c2c
add esp, 0xc
add ebx, eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 8
jl 0x42a260
jmp 0x42a643
lea ebx, [edi + edi*4]
lea edx, [ebp - 0x20c]
push dword [esi + ebx*2 + 0x3c]
push edx
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea eax, [ebp - 0x30c]
push dword [esi + ebx*2 + 0x38]
push eax
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea edx, [ebp - 0x30c]
lea ecx, [ebp - 0x20c]
lea eax, [ebp - 0x10c]
push edx
push ecx
push str._13s___13s
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x42a643
test edi, edi
jl 0x42a331
cmp edi, 4
jge 0x42a331
mov edx, dword [esi + edi*4 + 0x182]
lea ecx, [ebp - 0x10c]
push edx
push 0x4b399e
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
cmp edi, 6
jne 0x42a356
mov eax, dword [esi + 0xe6]
lea edx, [ebp - 0x10c]
push eax
push 0x4b399e
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
cmp edi, 7
jne 0x42a37b
mov ecx, dword [esi + 0x192]
lea eax, [ebp - 0x10c]
push ecx
push 0x4b399e
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov byte [ebp - 0x10c], 0
jmp 0x42a643
cmp dword [esi + 0xf2], 0
je 0x42a47b
mov edx, edi
lea eax, [ebp - 0x20c]
shl edx, 4
push dword [esi + edx + 0x106]
push eax
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea edx, [ebp - 0x20c]
push edx
push str._13s_
lea ecx, [ebp - 0x10c]
push ecx
call fcn.004a6c2c
mov ebx, eax
mov eax, edi
add esp, 0xc
lea ecx, [ebp - 0x20c]
shl eax, 4
push dword [esi + eax + 0x102]
push ecx
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea eax, [ebp - 0x20c]
lea edx, [ebp - 0x10c]
add edx, ebx
push eax
push str._13s_
push edx
call fcn.004a6c2c
add esp, 0xc
add ebx, eax
mov ecx, edi
lea edx, [ebp - 0x20c]
shl ecx, 4
push dword [esi + ecx + 0xfe]
push edx
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea ecx, [ebp - 0x20c]
lea eax, [ebp - 0x10c]
add eax, ebx
push ecx
push str._13s_
push eax
call fcn.004a6c2c
add esp, 0xc
add ebx, eax
shl edi, 4
lea ecx, [ebp - 0x20c]
push dword [esi + edi + 0xfa]
push ecx
call sym.ollydbg.exe__Printfloat4
add esp, 8
lea eax, [ebp - 0x20c]
lea edx, [ebp - 0x10c]
add ebx, edx
push eax
push 0x4b52ad
push ebx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov esi, 0x4b53ee
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
jmp 0x42a643
cmp dword [esi + 0xf2], 0
je 0x42a502
mov edx, dword [esi + 0x17a]
and edx, 0x6000
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jne 0x42a4b3
mov ecx, str.NEAR
jmp 0x42a4d8
cmp dword [ebp - 4], 0x2000
jne 0x42a4c3
mov ecx, str.DOWN
jmp 0x42a4d8
cmp dword [ebp - 4], 0x4000
jne 0x42a4d3
mov ecx, 0x4b5266
jmp 0x42a4d8
mov ecx, str.ZERO
mov edi, ecx
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x10c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x42a643
mov esi, 0x4b53ee
lea edi, [ebp - 0x10c]
mov eax, edi
movsd dword es:[edi], dword [esi]
jmp 0x42a643
cmp dword [esi + 0xee], 0xffffffff
jne 0x42a537
push 0x4b5160
lea edx, [ebp - 0x10c]
push edx
call fcn.004a6c2c
add esp, 8
jmp 0x42a643
mov ecx, dword [esi + 0xee]
push ecx
push 2
call fcn.0040f1e4
add esp, 8
test eax, eax
jne 0x42a56c
mov eax, dword [esi + 0xee]
lea edx, [ebp - 0x10c]
push eax
push 0x4b4909
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x42a643
mov ecx, dword [esi + 0xee]
push ecx
push eax
push 0x4b5182
lea eax, [ebp - 0x10c]
push eax
call fcn.004a6c2c
add esp, 0x10
jmp 0x42a643
mov edi, 0x4b2e60
jmp 0x42a5aa
mov eax, dword [edi + 0x14]
test eax, eax
je 0x42a5a0
cmp dword [eax], 0
je 0x42a5a7
movsx edx, word [edi]
cmp ebx, edx
je 0x42a5b0
add edi, 0x18
cmp word [edi], 0
jne 0x42a594
cmp word [edi], 0
jne 0x42a5be
or eax, 0xffffffff
jmp 0x42a70c
cmp dword [edi + 0x10], 0
jne 0x42a5cc
or eax, 0xffffffff
jmp 0x42a70c
push esi
push edi
mov edi, 0x4d3388
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
and ebx, 0x1f0
cmp ebx, 0x120
jne 0x42a606
cmp dword [esi + 0xf2], 0
jne 0x42a606
mov esi, 0x4b3b00
lea edi, [ebp - 0x10c]
mov eax, edi
movsw word es:[edi], word [esi]
jmp 0x42a643
mov edx, dword [edi + 8]
mov ecx, dword [edx]
and ecx, dword [edi + 0x10]
jne 0x42a617
mov eax, 0x4b53f2
jmp 0x42a61c
mov eax, 0x4b47c8
push edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x10c]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
lea eax, [ebp - 0x10c]
push eax
call fcn.004a36d4
pop ecx
mov ebx, eax
inc ebx
mov edi, ebx
mov eax, edi
add eax, eax
push eax
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov esi, eax
push edi
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov edi, eax
test esi, esi
je 0x42a67b
test edi, edi
jne 0x42a6a4
test esi, esi
je 0x42a685
push esi
call sub.KERNEL32.DLL_GlobalFree
test edi, edi
je 0x42a68f
push edi
call sub.KERNEL32.DLL_GlobalFree
add ebx, ebx
push ebx
push 0x4b493a
call sym.ollydbg.exe__Error
add esp, 8
or eax, 0xffffffff
jmp 0x42a70c
push esi
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 0xc], eax
push edi
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 8], eax
push ebx
lea edx, [ebp - 0x10c]
push edx
mov ecx, dword [ebp - 8]
push ecx
call fcn.004a3530
add esp, 0xc
push ebx
mov eax, dword [ebp - 0xc]
push eax
push ebx
mov edx, dword [ebp - 8]
push edx
push 1
push 0
call sub.KERNEL32.DLL_MultiByteToWideChar
push esi
call sub.KERNEL32.DLL_GlobalUnlock
push edi
call sub.KERNEL32.DLL_GlobalUnlock
push 0
call sub.USER32.DLL_OpenClipboard
call sub.USER32.DLL_EmptyClipboard
push esi
push 0xd
call sub.USER32.DLL_SetClipboardData
push edi
push 1
call sub.USER32.DLL_SetClipboardData
call sub.USER32.DLL_CloseClipboard
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret