Function at 0x42a878
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe94
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp eax, 0x202
jg 0x42a92e
je 0x42aa92
cmp eax, 0x102
jg 0x42a8ee
je 0x42b4b9
cmp eax, 0xa1
jg 0x42a8d5
je 0x42a9dc
sub eax, 2
je 0x42a9cf
sub eax, 0xd
je 0x42d402
sub eax, 0x38
je 0x42aae5
jmp case.0x42a98c.1136
sub eax, 0xa4
je 0x42a9dc
sub eax, 0x5c
je case.0x42a98c.1145
jmp case.0x42a98c.1136
cmp eax, 0x115
jg 0x42a917
je 0x42ab04
sub eax, 0x104
je case.0x42a98c.1146
add eax, 0xfffffff1
sub eax, 2
jb 0x42aac6
jmp case.0x42a98c.1136
sub eax, 0x200
je 0x42abc8
dec eax
je 0x42a9f7
jmp case.0x42a98c.1136
cmp eax, 0x46b
jg 0x42a97e
je 0x42ade5
cmp eax, 0x465
jg 0x42a962
je 0x42b817
add eax, 0xfffffdfd
sub eax, 2
jb 0x42aa5c
dec eax
je 0x42aa5c
jmp case.0x42a98c.1136
sub eax, 0x466
je case.0x42a98c.1132
add eax, 0xfffffffe
sub eax, 3
jb case.0x42a98c.1132
jmp case.0x42a98c.1136
add eax, 0xfffffb94
cmp eax, 0xe
ja case.0x42a98c.1136
jmp dword [eax*4 + 0x42a993]
xor edx, edx
mov dword [0x4cedbc], edx
jmp case.0x42a98c.1136
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0x471
mov eax, dword [0x4cd6a0]
push eax
call fcn.0041d1dc
jmp case.0x42a98c.1136
mov dx, word [ebp + 0x14]
mov eax, dword [ebp + 0x14]
and dx, 0xffff
movsx ecx, dx
shr eax, 0x10
mov dword [0x4d36b8], ecx
movsx edx, ax
xor ecx, ecx
mov dword [0x4d36bc], edx
mov dword [0x4d36c4], ecx
cmp dword [0x4cefe9], 1
jne 0x42aa40
mov eax, dword [0x4ceefc]
mov edx, dword [eax*4 + 0x4d4920]
add edx, 4
cmp edx, dword [0x4d36bc]
jg 0x42aa55
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_SetCapture
mov dword [0x4d36c0], 1
jmp 0x42aa5c
xor eax, eax
mov dword [0x4d36c0], eax
mov edx, dword [ebp + 8]
push edx
push 0
push 0x471
mov ecx, dword [0x4cd6a0]
push ecx
call fcn.0041d1dc
mov eax, dword [ebp + 0x14]
push eax
push edi
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp + 8]
push ecx
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x42a98c.1136
cmp dword [0x4d36c0], 0
je 0x42aaa0
call sub.USER32.DLL_ReleaseCapture
mov edx, dword [ebp + 0x14]
xor eax, eax
push edx
push edi
mov ecx, dword [ebp + 0xc]
mov dword [0x4d36c0], eax
push ecx
mov eax, dword [ebp + 8]
push eax
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x42a98c.1136
mov edx, dword [ebp + 0x14]
push edx
push edi
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x42a98c.1136
mov edx, dword [ebp + 0x14]
push edx
push edi
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp 0x42d559
cmp dword [0x4d36c0], 0
jne case.0x42a98c.1136
mov edx, edi
and dx, 0xffff
test dx, dx
jne 0x42ab25
dec dword [0x4d3014]
jmp 0x42ab67
mov ecx, edi
and cx, 0xffff
cmp cx, 2
jne 0x42ab3b
sub dword [0x4d3014], 8
jmp 0x42ab67
mov eax, edi
and ax, 0xffff
cmp ax, 1
jne 0x42ab4f
inc dword [0x4d3014]
jmp 0x42ab67
mov edx, edi
and dx, 0xffff
cmp dx, 3
jne case.0x42a98c.1136
add dword [0x4d3014], 8
cmp dword [0x4d3014], 0
jge 0x42ab7a
xor ecx, ecx
mov dword [0x4d3014], ecx
jmp 0x42abb6
cmp dword [0x4d5798], 0
je 0x42ab93
cmp dword [0x4d3018], 0
jne 0x42ab93
mov ebx, 0x2a
jmp 0x42aba8
cmp dword [0x4b2e5c], 1
jne 0x42aba3
mov ebx, 0x1e
jmp 0x42aba8
mov ebx, 0x1b
cmp ebx, dword [0x4d3014]
jge 0x42abb6
mov dword [0x4d3014], ebx
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_InvalidateRect
jmp case.0x42a98c.1136
cmp dword [0x4d36c0], 0
je 0x42adc6
call sub.USER32.DLL_GetCapture
cmp eax, dword [ebp + 8]
jne 0x42adc6
mov dx, word [ebp + 0x14]
and dx, 0xffff
movsx ecx, dx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 0x14]
shr eax, 0x10
movsx edx, ax
mov dword [ebp - 0x14], edx
cmp dword [0x4d36c4], 0
jne 0x42ac6b
mov ecx, dword [ebp - 0x10]
sub ecx, dword [0x4d36b8]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jge 0x42ac39
mov ecx, dword [ebp - 0x14]
sub ecx, dword [0x4d36bc]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jl 0x42ac6b
push str.CURS_SIZE
mov ecx, dword [0x4d3b78]
push ecx
call sub.USER32.DLL_LoadCursorA
push eax
call sub.USER32.DLL_SetCursor
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [0x4d36b8], eax
mov dword [0x4d36bc], edx
mov dword [0x4d36c4], 1
cmp dword [0x4d36c4], 0
je case.0x42a98c.1136
xor ecx, ecx
mov dword [0x4d3384], ecx
cmp dword [0x4d5798], 0
je 0x42ac99
cmp dword [0x4d3018], 0
jne 0x42ac99
mov ebx, 0x2a
jmp 0x42acae
cmp dword [0x4b2e5c], 1
jne 0x42aca9
mov ebx, 0x1e
jmp 0x42acae
mov ebx, 0x1b
mov eax, dword [0x4ceff5]
lea ecx, [ebp - 0x16c]
mov esi, dword [eax*4 + 0x4d48f4]
mov eax, dword [0x4ceff5]
mov edx, dword [eax*4 + 0x4d4920]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, dword [0x4d36bc]
cdq
idiv dword [ebp - 0x18]
mov dword [ebp - 4], eax
push ecx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_GetClientRect
cmp dword [0x4cefe9], 1
jne 0x42ad08
mov edx, dword [0x4ceefc]
mov ecx, dword [edx*4 + 0x4d4920]
add ecx, 4
mov dword [ebp - 0x168], ecx
mov eax, dword [ebp - 4]
sub dword [0x4d3014], eax
cmp ebx, dword [0x4d3014]
jge 0x42ad2a
mov edx, dword [0x4d3014]
mov dword [0x4d3014], ebx
sub edx, ebx
add dword [ebp - 4], edx
cmp dword [0x4d3014], 0
jge 0x42ad43
mov ecx, dword [0x4d3014]
add dword [ebp - 4], ecx
xor eax, eax
mov dword [0x4d3014], eax
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x18]
add dword [0x4d36bc], edx
mov ecx, dword [0x4cf001]
add ecx, dword [0x4d36b8]
cmp ecx, dword [ebp - 0x10]
jge 0x42ad71
mov eax, dword [0x4cf001]
add eax, dword [0x4d36b8]
mov dword [ebp - 0x10], eax
jmp 0x42ad9c
mov edx, dword [0x4cf001]
mov ecx, esi
shl ecx, 7
add edx, dword [0x4d36b8]
sub edx, ecx
cmp edx, dword [ebp - 0x10]
jle 0x42ad9c
mov eax, dword [0x4cf001]
add eax, dword [0x4d36b8]
shl esi, 7
sub eax, esi
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
sub edx, dword [0x4d36b8]
push 0
sub dword [0x4cf001], edx
push 0
mov eax, dword [ebp + 8]
mov dword [0x4d36b8], ecx
push eax
call sub.USER32.DLL_InvalidateRect
jmp case.0x42a98c.1136
mov edx, dword [ebp + 0x14]
push edx
push edi
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x42a98c.1136
and di, 0xffff
movzx edx, di
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp + 0x14]
add ecx, dword [0x4d3014]
cmp dword [0x4d5798], 0
mov dword [ebp - 0x14], ecx
je 0x42ae0e
cmp dword [0x4d3018], 0
je 0x42ae12
xor eax, eax
jmp 0x42ae17
mov eax, 1
mov dword [ebp - 0x2c], eax
mov ebx, 0x4b2e60
jmp 0x42ae75
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42ae2d
cmp dword [eax], 0
je 0x42ae72
cmp word [ebx + 2], 5
je 0x42ae40
movsx edx, word [ebx + 2]
cmp edx, dword [0x4b2e5c]
jne 0x42ae72
xor ecx, ecx
mov cl, byte [ebx + 4]
cmp ecx, dword [ebp - 0x10]
jg 0x42ae72
xor eax, eax
mov al, byte [ebx + 5]
cmp eax, dword [ebp - 0x10]
jle 0x42ae72
xor edx, edx
mov dl, byte [ebx + 6]
cmp edx, dword [ebp - 0x14]
jg 0x42ae72
xor ecx, ecx
mov cl, byte [ebx + 7]
cmp ecx, dword [ebp - 0x14]
jle 0x42ae72
movsx eax, word [ebx]
mov dword [0x4d3384], eax
jmp 0x42ae87
add ebx, 0x18
cmp word [ebx], 0
je 0x42ae87
cmp dword [ebp - 0x2c], 0
jne 0x42ae21
cmp byte [ebx + 6], 0x1e
jbe 0x42ae21
mov eax, 1
jmp 0x42d559
xor eax, eax
jmp 0x42d559
cmp dword [0x4d3018], 0
je 0x42aea8
xor eax, eax
jmp 0x42d559
mov edx, dword [0x4cd8f9]
push edx
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x42aec3
xor eax, eax
jmp 0x42d559
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x20]
push edx
push ecx
mov eax, dword [ebp + 0x14]
push eax
mov edx, dword [ebp + 0xc]
push edx
call fcn.004582f0
mov ecx, dword [ebp - 0x34]
add esp, 0x10
push edi
lea esi, [ecx + 0x2ec]
mov ecx, 0x65
mov edi, 0x4d3388
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x34]
pop edi
push edi
mov edi, 0x4d351e
lea esi, [eax + 0x486]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [0x4d3384]
pop edi
and eax, 0xf
mov esi, dword [0x4d3384]
mov dword [ebp - 0x1c], eax
and esi, 0x1f0
mov edx, dword [ebp - 0x1c]
add edx, dword [0x4d33bc]
and edx, 0x80000007
jns 0x42af3a
dec edx
or edx, 0xfffffff8
inc edx
mov dword [ebp - 8], edx
mov ebx, 0x4b2e60
jmp 0x42af5e
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42af50
cmp dword [eax], 0
je 0x42af5b
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42af64
add ebx, 0x18
cmp word [ebx], 0
jne 0x42af44
cmp edi, 8
jne 0x42b096
cmp dword [0x4d338c], 0
je 0x42b096
cmp dword [ebx + 8], 0
je 0x42afbb
cmp dword [ebx + 0xc], 0
je 0x42afbb
cmp dword [ebx + 0x10], 0
jne 0x42af9b
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov eax, dword [ecx]
mov dword [edx], eax
jmp 0x42b06c
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
not edx
mov eax, dword [ecx]
mov ecx, dword [ebx + 0xc]
and eax, edx
mov edx, dword [ecx]
and edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 8]
or eax, edx
mov dword [ecx], eax
jmp 0x42b06c
cmp esi, 0x60
jne 0x42afd7
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov al, byte [eax + 0x4d35a6]
mov byte [edx + 0x4d3410], al
jmp 0x42b06c
cmp esi, 0x70
jne 0x42b006
push 0xa
mov ecx, dword [ebp - 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d3556
push ecx
mov eax, dword [ebp - 8]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
call fcn.004a3530
add esp, 0xc
jmp 0x42b06c
cmp esi, 0xe0
je 0x42b016
cmp esi, 0xf0
jne 0x42b040
push 0xa
mov edx, dword [ebp - 0x1c]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d3556
push edx
mov ecx, dword [ebp - 0x1c]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d33c0
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x42b06c
cmp esi, 0x100
jne 0x42b06c
push 0x10
mov eax, dword [ebp - 0x1c]
shl eax, 4
add eax, 0x4d3618
push eax
mov edx, dword [ebp - 0x1c]
shl edx, 4
add edx, 0x4d3482
push edx
call fcn.004a3530
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov esi, 0x4d3388
lea edi, [ecx + 0x2ec]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
push 0
push 0x476
call sym.ollydbg.exe__Broadcast
add esp, 0xc
jmp 0x42b0f0
mov eax, dword [ebp + 0x14]
push eax
push edi
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp + 8]
push ecx
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
test eax, eax
je 0x42b0be
mov eax, 1
jmp 0x42d559
mov edx, dword [ebp - 0x34]
mov ecx, dword [0x4d3384]
mov dword [edx + 0x46a], ecx
mov eax, dword [ebp - 0x34]
add eax, 0x2ec
push eax
push edi
mov edx, dword [ebp - 0x20]
push edx
push 1
mov ecx, dword [ebp - 0x24]
push ecx
push 0x22
call fcn.00496e98
add esp, 0x18
jmp 0x42d559
mov eax, 1
jmp 0x42d559
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x20]
push edx
push ecx
mov eax, dword [ebp + 0x14]
push eax
mov edx, dword [ebp + 0xc]
push edx
call fcn.004582f0
add esp, 0x10
cmp edi, 0x1b
jne 0x42b137
cmp dword [ebp - 0x24], 0
jne 0x42b137
push 0x4000
push 0
push 0
push 0
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x42b4af
cmp edi, 9
jne 0x42b168
cmp dword [ebp - 0x20], 0
je 0x42b14a
mov ecx, dword [0x4cd6a8]
jmp 0x42b150
mov ecx, dword [0x4cde42]
push ecx
push 0
push 0x471
mov eax, dword [0x4cd6a0]
push eax
call fcn.0041d1dc
jmp 0x42b4af
cmp dword [ebp - 0x24], 0
jne 0x42b38a
cmp edi, 0x25
je 0x42b18a
cmp edi, 0x27
je 0x42b18a
cmp edi, 0x26
je 0x42b18a
cmp edi, 0x28
jne 0x42b38a
cmp dword [0x4d5798], 0
je 0x42b19c
cmp dword [0x4d3018], 0
je 0x42b1a0
xor edx, edx
jmp 0x42b1a5
mov edx, 1
mov dword [ebp - 0x2c], edx
mov ebx, 0x4b2e60
jmp 0x42b1c9
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42b1bb
cmp dword [eax], 0
je 0x42b1c6
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42b1cf
add ebx, 0x18
cmp word [ebx], 0
jne 0x42b1af
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx + 4]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov al, byte [ebx + 6]
mov ebx, 0x4b2e60
mov dword [ebp - 0x14], eax
jmp 0x42b342
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42b1fb
cmp dword [eax], 0
je 0x42b33f
mov ax, word [ebx + 2]
cmp ax, 5
je 0x42b214
movsx edx, ax
cmp edx, dword [0x4b2e5c]
jne 0x42b33f
movsx eax, word [ebx]
cmp eax, dword [0x4d3384]
je 0x42b33f
cmp edi, 0x25
jne 0x42b25b
xor edx, edx
mov dl, byte [ebx + 6]
cmp edx, dword [ebp - 0x14]
jne 0x42b33f
xor eax, eax
mov al, byte [ebx + 4]
cmp eax, dword [ebp - 0x10]
jge 0x42b33f
test ecx, ecx
je 0x42b254
mov dl, byte [ecx + 4]
cmp dl, byte [ebx + 4]
jae 0x42b33f
mov ecx, ebx
jmp 0x42b33f
cmp edi, 0x27
jne 0x42b293
xor eax, eax
mov al, byte [ebx + 6]
cmp eax, dword [ebp - 0x14]
jne 0x42b33f
xor edx, edx
mov dl, byte [ebx + 4]
cmp edx, dword [ebp - 0x10]
jle 0x42b33f
test ecx, ecx
je 0x42b28c
mov al, byte [ecx + 4]
cmp al, byte [ebx + 4]
jbe 0x42b33f
mov ecx, ebx
jmp 0x42b33f
cmp edi, 0x26
jne 0x42b2ee
xor edx, edx
mov dl, byte [ebx + 6]
cmp edx, dword [ebp - 0x14]
jge 0x42b33f
test ecx, ecx
je 0x42b2ea
mov al, byte [ecx + 6]
cmp al, byte [ebx + 6]
jb 0x42b2ea
mov dl, byte [ecx + 6]
cmp dl, byte [ebx + 6]
jne 0x42b33f
xor eax, eax
mov al, byte [ebx + 4]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cdq
xor eax, edx
sub eax, edx
mov esi, eax
xor eax, eax
mov al, byte [ecx + 4]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
cdq
xor eax, edx
sub eax, edx
cmp esi, eax
jge 0x42b33f
mov ecx, ebx
jmp 0x42b33f
cmp edi, 0x28
jne 0x42b33f
xor eax, eax
mov al, byte [ebx + 6]
cmp eax, dword [ebp - 0x14]
jle 0x42b33f
test ecx, ecx
je 0x42b33d
mov dl, byte [ecx + 6]
cmp dl, byte [ebx + 6]
ja 0x42b33d
mov al, byte [ecx + 6]
cmp al, byte [ebx + 6]
jne 0x42b33f
xor edx, edx
mov dl, byte [ebx + 4]
sub edx, dword [ebp - 0x10]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
cdq
xor eax, edx
sub eax, edx
mov esi, eax
xor eax, eax
mov al, byte [ecx + 4]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cdq
xor eax, edx
sub eax, edx
cmp esi, eax
jge 0x42b33f
mov ecx, ebx
add ebx, 0x18
cmp word [ebx], 0
je 0x42b35c
cmp dword [ebp - 0x2c], 0
jne 0x42b1eb
cmp byte [ebx + 6], 0x1e
jbe 0x42b1eb
test ecx, ecx
jne 0x42b367
xor eax, eax
jmp 0x42d559
movsx edx, word [ecx]
push 0
push 0
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [0x4d3384], edx
mov dword [0x4cf001], ecx
push eax
call sub.USER32.DLL_InvalidateRect
jmp 0x42b4af
cmp dword [ebp - 0x24], 0
jne 0x42b424
cmp edi, 0xd
jne 0x42b424
cmp dword [0x4d3018], 0
jne 0x42b424
cmp dword [0x4d3384], 0
jne 0x42b3b6
xor eax, eax
jmp 0x42d559
mov ebx, 0x4b2e60
jmp 0x42b3ea
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42b3c9
cmp dword [eax], 0
je 0x42b3e7
cmp word [ebx + 2], 5
je 0x42b3dc
movsx edx, word [ebx + 2]
cmp edx, dword [0x4b2e5c]
jne 0x42b3e7
movsx ecx, word [ebx]
cmp ecx, dword [0x4d3384]
je 0x42b3f0
add ebx, 0x18
cmp word [ebx], 0
jne 0x42b3bd
cmp word [ebx], 0
jne 0x42b3fd
xor eax, eax
jmp 0x42d559
xor edx, edx
mov dl, byte [ebx + 6]
sub edx, dword [0x4d3014]
push edx
xor ecx, ecx
mov cl, byte [ebx + 4]
push ecx
push 0x46f
mov eax, dword [ebp + 8]
push eax
call fcn.0042a878
xor eax, eax
jmp 0x42d559
cmp dword [ebp - 0x24], 0
je 0x42b43e
cmp edi, 0x43
jne 0x42b43e
mov edx, dword [0x4d3384]
push edx
call fcn.00429f5c
pop ecx
jmp 0x42b4af
mov ecx, dword [ebp + 0x14]
push ecx
push edi
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 8]
push edx
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
test eax, eax
je 0x42b466
mov eax, 1
jmp 0x42d559
mov edx, dword [0x4cd8f9]
push edx
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x42b481
xor eax, eax
jmp 0x42d559
mov edx, dword [ebp - 0x34]
mov ecx, dword [0x4d3384]
mov dword [edx + 0x46a], ecx
push 0x4d3388
push edi
mov eax, dword [ebp - 0x20]
push eax
push 0
mov edx, dword [ebp - 0x24]
push edx
push 0x22
call fcn.00496e98
add esp, 0x18
jmp 0x42d559
mov eax, 1
jmp 0x42d559
cmp dword [0x4d3018], 0
je 0x42b4c9
xor eax, eax
jmp 0x42d559
mov edx, dword [0x4cd8f9]
push edx
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x42b4e6
xor eax, eax
jmp 0x42d559
lea edx, [ebp - 0x16c]
push edx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_GetWindowRect
cmp dword [0x4cefe9], 0
je 0x42b514
mov eax, dword [0x4ceefc]
mov edx, dword [eax*4 + 0x4d4920]
add edx, 4
add dword [ebp - 0x168], edx
mov ebx, 0x4b2e60
jmp 0x42b535
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42b527
cmp dword [eax], 0
je 0x42b532
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42b53b
add ebx, 0x18
cmp word [ebx], 0
jne 0x42b51b
cmp word [ebx], 0
jne 0x42b558
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x14], eax
jmp 0x42b5f1
mov ecx, dword [0x4ceff5]
xor edx, edx
mov dl, byte [ebx + 5]
mov eax, dword [ebp - 0x16c]
imul edx, dword [ecx*4 + 0x4d48f4]
sub eax, dword [0x4cf001]
add edx, eax
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x16c]
cmp edx, dword [ebp - 0x10]
jle 0x42b592
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
jmp 0x42b5a6
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x10]
jge 0x42b5a6
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x10], edx
xor ecx, ecx
mov eax, dword [0x4ceff5]
mov cl, byte [ebx + 6]
sub ecx, dword [0x4d3014]
imul ecx, dword [eax*4 + 0x4d4920]
add ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x168]
cmp edx, dword [ebp - 0x14]
jle 0x42b5dd
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
jmp 0x42b5f1
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x14]
jge 0x42b5f1
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x34]
push edi
mov edi, 0x4d3388
lea esi, [ecx + 0x2ec]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [0x4d3384]
pop edi
and eax, 0xf
mov esi, dword [0x4d3384]
mov dword [ebp - 0x1c], eax
and esi, 0x1f0
mov edx, dword [ebp - 0x1c]
add edx, dword [0x4d33bc]
and edx, 0x80000007
jns 0x42b637
dec edx
or edx, 0xfffffff8
inc edx
mov dword [ebp - 8], edx
push edi
call fcn.004a7c50
pop ecx
test eax, eax
je 0x42b6d3
cmp esi, 0x10
jne 0x42b6d3
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c2650]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
cmp dword [ebp - 0x1c], 4
jge 0x42b6a3
mov ecx, dword [ebp - 0x14]
mov edx, edi
push ecx
mov eax, dword [ebp - 0x10]
push eax
push edx
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
shl ecx, 2
add ecx, 0x4d3394
push ecx
push eax
call sym.ollydbg.exe__Getregxy
add esp, 0x14
jmp 0x42b77a
mov edx, dword [ebp - 0x14]
mov eax, edi
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 0
push eax
push 4
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x15c]
shl edx, 2
add edx, 0x4d3394
push edx
push ecx
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42b77a
push edi
call fcn.004a7bbc
pop ecx
test eax, eax
jne 0x42b6ed
cmp edi, 0x2e
je 0x42b6ed
cmp edi, 0x2d
je 0x42b6ed
cmp edi, 0x2b
jne 0x42b747
cmp esi, 0x70
jne 0x42b747
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x15c]
mov edx, dword [eax*4 + 0x4c2758]
push edx
push str.Modify__s
push ecx
call fcn.004a6c2c
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov ecx, edi
push eax
mov edx, dword [ebp - 0x10]
mov eax, 0x4d3410
push edx
push 0
push ecx
lea ecx, [ebp - 0x15c]
add eax, dword [ebp - 8]
push eax
mov edx, dword [ebp - 8]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d33c0
push edx
push ecx
call sym.ollydbg.exe__Getfloat10xy
add esp, 0x1c
jmp 0x42b77a
cmp edi, 0x2b
jne 0x42b75d
cmp esi, 0x10
jne 0x42b75d
mov eax, dword [ebp - 0x1c]
inc dword [eax*4 + 0x4d3394]
jmp 0x42b77a
cmp edi, 0x2d
jne 0x42b773
cmp esi, 0x10
jne 0x42b773
mov edx, dword [ebp - 0x1c]
dec dword [edx*4 + 0x4d3394]
jmp 0x42b77a
xor eax, eax
jmp 0x42d559
push 0x196
push 0x4d3388
mov edx, dword [ebp - 0x34]
add edx, 0x2ec
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42b810
cmp dword [0x4d338c], 0
jne 0x42b7d2
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
lea esi, [ecx + 0x2ec]
lea edi, [eax + 0x486]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [0x4d3388], 1
mov dword [0x4d338c], 1
mov eax, dword [ebp - 0x34]
mov esi, 0x4d3388
mov ecx, 0x65
lea edi, [eax + 0x2ec]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
push 0
push 0x476
call sym.ollydbg.exe__Broadcast
add esp, 0xc
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_InvalidateRect
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_UpdateWindow
xor eax, eax
jmp 0x42d559
mov edx, dword [0x4cd8f9]
push edx
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x42b84c
push 0
push 0
push 0x465
mov ecx, dword [ebp + 8]
push ecx
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x42a98c.1136
mov eax, dword [ebp - 0x34]
push edi
mov edi, 0x4d3388
mov ecx, 0x65
lea esi, [eax + 0x2ec]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x34]
pop edi
push edi
mov edi, 0x4d351e
lea esi, [eax + 0x486]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [0x4d3384]
pop edi
and eax, 0xf
mov esi, dword [0x4d3384]
mov dword [ebp - 0x1c], eax
and esi, 0x1f0
mov edx, dword [ebp - 0x1c]
add edx, dword [0x4d33bc]
and edx, 0x80000007
jns 0x42b8ab
dec edx
or edx, 0xfffffff8
inc edx
mov dword [ebp - 8], edx
mov ebx, 0x4b2e60
jmp 0x42b8cf
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42b8c1
cmp dword [eax], 0
je 0x42b8cc
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42b8d5
add ebx, 0x18
cmp word [ebx], 0
jne 0x42b8b5
call sub.USER32.DLL_CreatePopupMenu
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x42c005
xor ecx, ecx
cmp dword [0x4d3018], 0
mov dword [ebp - 0x28], ecx
jne 0x42bae7
cmp esi, 0x10
jne 0x42b922
push str.Increment_tPlus
push 0xb
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
push str.Decrement_tMinus
push 0xc
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
cmp dword [ebx + 0x10], 0
je 0x42b960
cmp esi, 0xc0
je 0x42b960
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
and eax, dword [ebx + 0x10]
jne 0x42b94e
push str.Set_tEnter
push 0xd
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
jmp 0x42b960
push str.Reset_tEnter
push 0xd
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x10
je 0x42b96a
cmp esi, 0x40
jne 0x42b984
mov eax, dword [ebx + 8]
cmp dword [eax], 0
je 0x42b984
push str.Zero
push 0xe
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x70
je 0x42b9a1
cmp esi, 0xe0
je 0x42b9a1
cmp esi, 0xf0
je 0x42b9a1
cmp esi, 0x100
jne 0x42b9b3
push str.Zero
push 0xe
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x10
jne 0x42b9d2
mov eax, dword [ebx + 8]
cmp dword [eax], 1
je 0x42b9d2
push str.Set_to_1
push 0xf
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x10
je 0x42ba0e
cmp esi, 0x40
je 0x42ba0e
cmp esi, 0x50
je 0x42ba0e
cmp esi, 0x70
je 0x42ba0e
cmp esi, 0x80
je 0x42ba0e
cmp esi, 0xb0
je 0x42ba0e
cmp esi, 0xe0
je 0x42ba0e
cmp esi, 0xf0
je 0x42ba0e
cmp esi, 0x100
jne 0x42ba20
push str.Modify_tEnter
push 0x10
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x20
jne 0x42ba5c
mov eax, dword [0x4d33b4]
cmp eax, dword [0x4cda2d]
je 0x42ba5c
mov edx, dword [0x4d33b4]
push edx
call sym.ollydbg.exe__Findmemory
pop ecx
test eax, eax
je 0x42ba5c
push str.Origin_tEnter
push 0x11
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x28], 1
cmp esi, 0x60
jne 0x42bae7
mov eax, dword [ebp - 8]
cmp byte [eax + 0x4d3410], 0
je 0x42ba83
push str.Mark_as_valid
push 0x15
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x4d3410]
dec eax
je 0x42baa3
push str.Mark_as_zero
push 0x16
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x4d3410]
cmp eax, 2
je 0x42bac5
push str.Mark_as_bad
push 0x17
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 0x4d3410]
cmp eax, 3
je 0x42bae7
push str.Mark_as_empty
push 0x18
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
test esi, esi
je 0x42bafd
push str.Copy_selection_to_clipboard_tCtrlC
push 0x1e
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
push str.Copy_all_registers_to_clipboard
push 0x1f
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4d3018], 0
jne 0x42be65
cmp esi, 0x60
je 0x42bb26
cmp esi, 0x70
jne 0x42bb4a
push str.Push_FPU_stack
push 0x20
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
push str.Pop_FPU_stack
push 0x21
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0xc0
jne 0x42bc47
test byte [0x4d341d], 0xc
je 0x42bb71
push str.Round_to_nearest
push 0x29
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
mov edx, dword [0x4d341c]
and edx, 0xc00
cmp edx, 0x400
je 0x42bb97
push str.Round_down
push 0x2a
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
mov eax, dword [0x4d341c]
and eax, 0xc00
cmp eax, 0x800
je 0x42bbba
push str.Round_up
push 0x2b
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [0x4d341c]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x42bbe0
push str.Round_to_zero
push 0x2c
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
test byte [0x4d341d], 3
je 0x42bbfb
push str.24_bit_accuracy
push 0x2d
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [0x4d341c]
and ecx, 0x300
cmp ecx, 0x200
je 0x42bc21
push str.53_bit_accuracy
push 0x2e
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
mov edx, dword [0x4d341c]
and edx, 0x300
cmp edx, 0x300
je 0x42bc47
push str.64_bit_accuracy
push 0x2f
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x130
jne 0x42bcdd
test byte [0x4d3503], 0x60
je 0x42bc6e
push str.Round_to_nearest
push 0x33
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
mov edx, dword [0x4d3502]
and edx, 0x6000
cmp edx, 0x2000
je 0x42bc94
push str.Round_down
push 0x34
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
mov eax, dword [0x4d3502]
and eax, 0x6000
cmp eax, 0x4000
je 0x42bcb7
push str.Round_up
push 0x35
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [0x4d3502]
and ecx, 0x6000
cmp ecx, 0x6000
je 0x42bcdd
push str.Round_to_zero
push 0x36
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
cmp dword [ebx + 8], 0
je 0x42bd23
cmp dword [ebx + 0xc], 0
je 0x42bd23
cmp dword [0x4d338c], 0
je 0x42bd23
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [edx]
xor ecx, dword [eax]
mov dword [ebp - 0x30], ecx
cmp dword [ebx + 0x10], 0
je 0x42bd0b
mov edx, dword [ebx + 0x10]
and dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
je 0x42bd23
push str.Undo_tAltBkSp
push 0x39
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x60
jne 0x42bd57
cmp dword [0x4d338c], 0
je 0x42bd57
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dl, byte [eax + 0x4d3410]
cmp dl, byte [ecx + 0x4d35a6]
je 0x42bd57
push str.Undo_tAltBkSp
push 0x39
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x70
jne 0x42bdc3
cmp dword [0x4d338c], 0
je 0x42bdc3
push 0xa
mov edx, dword [ebp - 8]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d33c0
push edx
mov ecx, dword [ebp - 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d3556
push ecx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42bda3
push str.Undo_tAltBkSp
push 0x39
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
mov edx, dword [0x4d33bc]
cmp edx, dword [0x4d3552]
je 0x42bdc3
push str.Undo_push_pop
push 0x3a
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0xe0
je 0x42bdd3
cmp esi, 0xf0
jne 0x42be1a
cmp dword [0x4d338c], 0
je 0x42be1a
push 0xa
mov eax, dword [ebp - 0x1c]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
mov edx, dword [ebp - 0x1c]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d3556
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42be1a
push str.Undo_tAltBkSp
push 0x39
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x100
jne 0x42be65
cmp dword [0x4d338c], 0
je 0x42be65
push 0x10
mov eax, dword [ebp - 0x1c]
shl eax, 4
add eax, 0x4d3482
push eax
mov edx, dword [ebp - 0x1c]
shl edx, 4
add edx, 0x4d3618
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42be65
push str.Undo_tAltBkSp
push 0x39
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x10
jne 0x42bf4f
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax*4 + 0x4d3394]
push edx
call sym.ollydbg.exe__Findmemory
pop ecx
test eax, eax
je 0x42bf4f
push 0x4b3899
push 0
push 0x800
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax*4 + 0x4d3394]
push edx
call sym.ollydbg.exe__Findmodule
pop ecx
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x42bef2
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
mov eax, dword [ecx*4 + 0x4d3394]
cmp eax, dword [edx + 0xc]
jb 0x42bef2
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, dword [edx + 0x10]
cmp eax, dword [ecx*4 + 0x4d3394]
jbe 0x42bef2
push 0x4b5583
push 0x3d
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
push 0x4b559b
push 0x3e
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [ebp - 0x1c]
test byte [ecx*4 + 0x4d3394], 3
jne 0x42bf4f
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax*4 + 0x4d3394]
cmp edx, dword [0x4ce1b7]
jb 0x42bf4f
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x4ce1b7]
add edx, dword [0x4ce1bb]
mov eax, dword [ecx*4 + 0x4d3394]
cmp eax, edx
jae 0x42bf4f
push str.Follow_in_Stack
push 0x3f
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp esi, 0x20
je 0x42bf58
test esi, esi
jne 0x42bf5e
cmp dword [ebp - 0x28], 0
je 0x42bf73
push 0x4b3899
push 0
push 0x800
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4b2e5c], 1
je 0x42bf8e
push str.View_FPU_registers
push 0x47
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4b2e5c], 2
je 0x42bfa9
push str.View_MMX_registers
push 0x48
push 0
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4b2e5c], 3
je 0x42bfc4
push str.View_3DNow__registers
push 0x49
push 0
mov eax, dword [ebp - 0x44]
push eax
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4b2e5c], 4
je 0x42bfdf
push str.View_debug_registers
push 0x4a
push 0
mov edx, dword [ebp - 0x44]
push edx
call sub.USER32.DLL_AppendMenuA
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x4d3384]
mov dword [ecx + 0x46a], eax
mov edx, dword [ebp - 0x34]
add edx, 0x2ec
push edx
push 0x22
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004964e8
add esp, 0xc
mov eax, dword [ebp - 0x44]
push eax
push 0
push 0x465
mov edx, dword [ebp + 8]
push edx
push 0x4cedbc
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
mov dword [ebp - 4], eax
call fcn.0049659c
cmp dword [ebp - 0x44], 0
je 0x42c038
mov ecx, dword [ebp - 0x44]
push ecx
call sub.USER32.DLL_DestroyMenu
lea eax, [ebp - 0x16c]
push eax
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_GetWindowRect
cmp dword [0x4cefe9], 0
je 0x42c067
mov ecx, dword [0x4ceefc]
mov eax, dword [ecx*4 + 0x4d4920]
add eax, 4
add dword [ebp - 0x168], eax
mov ebx, 0x4b2e60
jmp 0x42c088
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42c07a
cmp dword [eax], 0
je 0x42c085
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42c08e
add ebx, 0x18
cmp word [ebx], 0
jne 0x42c06e
cmp word [ebx], 0
jne 0x42c0ab
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x14], eax
jmp 0x42c144
mov ecx, dword [0x4ceff5]
xor edx, edx
mov dl, byte [ebx + 5]
mov eax, dword [ebp - 0x16c]
imul edx, dword [ecx*4 + 0x4d48f4]
sub eax, dword [0x4cf001]
add edx, eax
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x16c]
cmp edx, dword [ebp - 0x10]
jle 0x42c0e5
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
jmp 0x42c0f9
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x10]
jge 0x42c0f9
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x10], edx
xor ecx, ecx
mov eax, dword [0x4ceff5]
mov cl, byte [ebx + 6]
sub ecx, dword [0x4d3014]
imul ecx, dword [eax*4 + 0x4d4920]
add ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x168]
cmp edx, dword [ebp - 0x14]
jle 0x42c130
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
jmp 0x42c144
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x14]
jge 0x42c144
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 4], 0x2df
jle 0x42c16a
cmp dword [ebp - 4], 0x2ff
jg 0x42c16a
mov ecx, dword [ebp - 4]
push ecx
call fcn.0041b7e0
pop ecx
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0xb
jne 0x42c17f
mov edx, dword [ebp - 0x1c]
inc dword [edx*4 + 0x4d3394]
jmp 0x42cb62
cmp dword [ebp - 4], 0xc
jne 0x42c194
mov ecx, dword [ebp - 0x1c]
dec dword [ecx*4 + 0x4d3394]
jmp 0x42cb62
cmp dword [ebp - 4], 0xd
jne 0x42c1a7
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
xor dword [eax], edx
jmp 0x42cb62
cmp dword [ebp - 4], 0xe
jne 0x42c262
cmp esi, 0x10
jne 0x42c1c7
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov dword [ecx*4 + 0x4d3394], eax
jmp 0x42cb62
cmp esi, 0x40
jne 0x42c1dd
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [edx*4 + 0x4d3420], ecx
jmp 0x42cb62
cmp esi, 0xe0
je 0x42c1ed
cmp esi, 0xf0
jne 0x42c210
push 0xa
push 0x4b560c
mov eax, dword [ebp - 0x1c]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
call fcn.004a3530
add esp, 0xc
jmp 0x42cb62
cmp esi, 0x100
jne 0x42c236
push 0x10
push 0
mov edx, dword [ebp - 0x1c]
shl edx, 4
add edx, 0x4d3482
push edx
call fcn.004a35a0
add esp, 0xc
jmp 0x42cb62
cmp esi, 0x70
jne 0x42cb62
mov ecx, dword [ebp - 8]
lea ecx, [ecx + ecx*4]
xor eax, eax
mov dword [ecx*2 + 0x4d33c0], eax
mov dword [ecx*2 + 0x4d33c4], eax
mov word [ecx*2 + 0x4d33c8], ax
jmp 0x42cb62
cmp dword [ebp - 4], 0xf
jne 0x42c27b
mov edx, dword [ebp - 0x1c]
mov dword [edx*4 + 0x4d3394], 1
jmp 0x42cb62
cmp dword [ebp - 4], 0x10
jne 0x42c650
cmp esi, 0x10
jne 0x42c309
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c2650]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
cmp dword [ebp - 0x1c], 4
jge 0x42c2da
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
mov edx, dword [ebp - 0x1c]
shl edx, 2
add edx, 0x4d3394
push edx
lea ecx, [ebp - 0x15c]
push ecx
call sym.ollydbg.exe__Getregxy
add esp, 0x14
jmp 0x42cb62
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 0
push 0
push 4
mov ecx, dword [ebp - 0x1c]
shl ecx, 2
add ecx, 0x4d3394
push ecx
lea eax, [ebp - 0x15c]
push eax
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42cb62
cmp esi, 0x40
jne 0x42c442
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
mov ecx, dword [edx*4 + 0x4c2674]
push ecx
push str.Modify__s
push eax
call fcn.004a6c2c
add esp, 0xc
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 2
push 0
push 2
mov eax, dword [ebp - 0x1c]
shl eax, 2
add eax, 0x4d3420
push eax
lea edx, [ebp - 0x15c]
push edx
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
test eax, eax
jne 0x42cb62
lea ecx, [ebp - 0x40]
push ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax*4 + 0x4d3420]
push edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 0xc]
push eax
call sub.KERNEL32.DLL_GetThreadSelectorEntry
test eax, eax
je 0x42c41d
movzx ecx, word [ebp - 0x3e]
mov dl, byte [ebp - 0x3c]
mov al, byte [ebp - 0x39]
and edx, 0xff
and eax, 0xff
shl edx, 0x10
and ecx, 0xffff
and edx, 0xff0000
add edx, ecx
mov ecx, dword [ebp - 0x1c]
shl eax, 0x18
and eax, 0xff000000
add edx, eax
mov dword [ecx*4 + 0x4d3438], edx
movzx eax, word [ebp - 0x40]
mov dl, byte [ebp - 0x3a]
mov ecx, dword [ebp - 0x1c]
and edx, 0xf
and eax, 0xffff
shl edx, 0x10
and edx, 0xf0000
add edx, eax
mov dword [ecx*4 + 0x4d3450], edx
test byte [ebp - 0x3a], 0x80
je 0x42c406
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx*4 + 0x4d3450]
mov edx, dword [ebp - 0x1c]
shl eax, 0xc
add eax, 0xfff
mov dword [edx*4 + 0x4d3450], eax
mov cl, byte [ebp - 0x3a]
mov eax, dword [ebp - 0x1c]
shr ecx, 6
and ecx, 1
mov byte [eax + 0x4d3468], cl
jmp 0x42cb62
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [edx*4 + 0x4d3450], ecx
mov eax, dword [ebp - 0x1c]
mov dword [eax*4 + 0x4d3438], ecx
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x4d3468], 1
jmp 0x42cb62
cmp esi, 0x50
jne 0x42c46c
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 2
push 0
push 4
push 0x4d33b8
push str.Modify_flags
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42cb62
cmp esi, 0x70
jne 0x42c4c8
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c2758]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
mov edx, 0x4d3410
add edx, dword [ebp - 8]
push edx
mov ecx, dword [ebp - 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d33c0
push ecx
lea eax, [ebp - 0x15c]
push eax
call sym.ollydbg.exe__Getfloat10xy
add esp, 0x1c
jmp 0x42cb62
cmp esi, 0x80
jne 0x42c4f5
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 2
push 0
push 2
push 0x4d3418
push str.Modify_FPU_status
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42cb62
cmp esi, 0xb0
jne 0x42c522
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 2
push 0
push 2
push 0x4d341c
push str.Modify_FPU_control_word
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42cb62
cmp esi, 0xe0
jne 0x42c58e
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c277c]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
mov edx, dword [ebp - 0x1c]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d33c0
push edx
lea ecx, [ebp - 0x15c]
push ecx
call sym.ollydbg.exe__Getmmxxy
add esp, 0x14
test eax, eax
jne 0x42cb62
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
mov word [eax*2 + 0x4d33c8], 0xffff
jmp 0x42cb62
cmp esi, 0xf0
jne 0x42c5fa
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
mov ecx, dword [edx*4 + 0x4c277c]
push ecx
push str.Modify__s_as_3DNow_
push eax
call fcn.004a6c2c
add esp, 0xc
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 0
mov eax, dword [ebp - 0x1c]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
lea edx, [ebp - 0x15c]
push edx
call sym.ollydbg.exe__Get3dnowxy
add esp, 0x14
test eax, eax
jne 0x42cb62
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + ecx*4]
mov word [ecx*2 + 0x4d33c8], 0xffff
jmp 0x42cb62
cmp esi, 0x100
jne 0x42cb62
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x15c]
mov edx, dword [eax*4 + 0x4c27a0]
push edx
push str.Modify__s
push ecx
call fcn.004a6c2c
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 0
mov ecx, dword [ebp - 0x1c]
shl ecx, 4
add ecx, 0x4d3482
push ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00441478
add esp, 0x14
jmp 0x42cb62
cmp dword [ebp - 4], 0x11
jne 0x42c672
push 5
push 0
push 0
mov edx, dword [0x4d33b4]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x42cb62
cmp dword [ebp - 4], 0x15
jne 0x42c687
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x4d3410], 0
jmp 0x42cb62
cmp dword [ebp - 4], 0x16
jne 0x42c69c
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x4d3410], 1
jmp 0x42cb62
cmp dword [ebp - 4], 0x17
jne 0x42c6b1
mov edx, dword [ebp - 0x1c]
mov byte [edx + 0x4d3410], 2
jmp 0x42cb62
cmp dword [ebp - 4], 0x18
jne 0x42c6c6
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x4d3410], 3
jmp 0x42cb62
cmp dword [ebp - 4], 0x1e
jne 0x42c6dd
mov eax, dword [0x4d3384]
push eax
call fcn.00429f5c
pop ecx
jmp 0x42cb62
cmp dword [ebp - 4], 0x1f
jne 0x42c6ed
call fcn.0042a714
jmp 0x42cb62
cmp dword [ebp - 4], 0x20
jne 0x42c714
mov edx, dword [0x4d33bc]
add edx, 7
and edx, 0x80000007
jns 0x42c709
dec edx
or edx, 0xfffffff8
inc edx
mov dword [0x4d33bc], edx
jmp 0x42cb62
cmp dword [ebp - 4], 0x21
jne 0x42c739
mov ecx, dword [0x4d33bc]
inc ecx
and ecx, 0x80000007
jns 0x42c72e
dec ecx
or ecx, 0xfffffff8
inc ecx
mov dword [0x4d33bc], ecx
jmp 0x42cb62
cmp dword [ebp - 4], 0x29
jne 0x42c74e
and dword [0x4d341c], 0xfffff3ff
jmp 0x42cb62
cmp dword [ebp - 4], 0x2a
jne 0x42c76d
mov eax, dword [0x4d341c]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [0x4d341c], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0x2b
jne 0x42c790
mov edx, dword [0x4d341c]
and edx, 0xfffff3ff
or edx, 0x800
mov dword [0x4d341c], edx
jmp 0x42cb62
cmp dword [ebp - 4], 0x2c
jne 0x42c7a5
or dword [0x4d341c], 0xc00
jmp 0x42cb62
cmp dword [ebp - 4], 0x2d
jne 0x42c7ba
and dword [0x4d341c], 0xfffffcff
jmp 0x42cb62
cmp dword [ebp - 4], 0x2e
jne 0x42c7dd
mov ecx, dword [0x4d341c]
and ecx, 0xfffffcff
or ecx, 0x200
mov dword [0x4d341c], ecx
jmp 0x42cb62
cmp dword [ebp - 4], 0x2f
jne 0x42c7f2
or dword [0x4d341c], 0x300
jmp 0x42cb62
cmp dword [ebp - 4], 0x33
jne 0x42c807
and dword [0x4d3502], 0xffff9fff
jmp 0x42cb62
cmp dword [ebp - 4], 0x34
jne 0x42c826
mov eax, dword [0x4d3502]
and eax, 0xffff9fff
or eax, 0x2000
mov dword [0x4d3502], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0x35
jne 0x42c849
mov edx, dword [0x4d3502]
and edx, 0xffff9fff
or edx, 0x4000
mov dword [0x4d3502], edx
jmp 0x42cb62
cmp dword [ebp - 4], 0x36
jne 0x42c85e
or dword [0x4d3502], 0x6000
jmp 0x42cb62
cmp dword [ebp - 4], 0x39
jne 0x42c959
cmp esi, 0x60
jne 0x42c884
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov al, byte [ecx + 0x4d35a6]
mov byte [edx + 0x4d3410], al
jmp 0x42cb62
cmp esi, 0x70
jne 0x42c8b6
push 0xa
mov ecx, dword [ebp - 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d3556
push ecx
mov eax, dword [ebp - 8]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
call fcn.004a3530
add esp, 0xc
jmp 0x42cb62
cmp esi, 0xe0
je 0x42c8c6
cmp esi, 0xf0
jne 0x42c8f3
push 0xa
mov edx, dword [ebp - 0x1c]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d3556
push edx
mov ecx, dword [ebp - 0x1c]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d33c0
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x42cb62
cmp esi, 0x100
jne 0x42c924
push 0x10
mov eax, dword [ebp - 0x1c]
shl eax, 4
add eax, 0x4d3618
push eax
mov edx, dword [ebp - 0x1c]
shl edx, 4
add edx, 0x4d3482
push edx
call fcn.004a3530
add esp, 0xc
jmp 0x42cb62
cmp dword [ebx + 0x10], 0
jne 0x42c939
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov eax, dword [ecx]
mov dword [edx], eax
jmp 0x42cb62
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
not edx
mov eax, dword [ecx]
mov ecx, dword [ebx + 0xc]
and eax, edx
mov edx, dword [ecx]
and edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 8]
or eax, edx
mov dword [ecx], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0x3a
jne 0x42c96e
mov eax, dword [0x4d3552]
mov dword [0x4d33bc], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0x3d
jne 0x42c994
push 0xd
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax*4 + 0x4d3394]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x42cb62
cmp dword [ebp - 4], 0x3e
jne 0x42c9bd
push 0xb0
push 0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx*4 + 0x4d3394]
push eax
push 0
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x42cb62
cmp dword [ebp - 4], 0x3f
jne 0x42c9e6
push 0x800
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx*4 + 0x4d3394]
push ecx
push 0
push 0
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x42cb62
cmp dword [ebp - 4], 0x47
jne 0x42ca28
test esi, esi
je 0x42ca08
cmp esi, 0xe0
je 0x42ca08
cmp esi, 0xf0
je 0x42ca08
cmp esi, 0x150
jne 0x42ca16
mov eax, dword [ebp - 0x1c]
and eax, 7
add eax, 0x70
mov dword [0x4d3384], eax
push 1
call fcn.0041c000
pop ecx
xor edx, edx
mov dword [ebp - 4], edx
jmp 0x42cb62
cmp dword [ebp - 4], 0x48
jne 0x42caa8
cmp esi, 0x60
je 0x42ca48
cmp esi, 0x70
je 0x42ca48
cmp esi, 0xf0
je 0x42ca48
cmp esi, 0x150
jne 0x42ca5c
mov ecx, dword [ebp - 0x1c]
and ecx, 7
add ecx, 0xe0
mov dword [0x4d3384], ecx
jmp 0x42ca96
cmp esi, 0x80
je 0x42ca8c
cmp esi, 0x90
je 0x42ca8c
cmp esi, 0xa0
je 0x42ca8c
cmp esi, 0xb0
je 0x42ca8c
cmp esi, 0xc0
je 0x42ca8c
cmp esi, 0xd0
jne 0x42ca96
mov dword [0x4d3384], 0xe0
push 2
call fcn.0041c000
pop ecx
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x42cb62
cmp dword [ebp - 4], 0x49
jne 0x42cb25
cmp esi, 0x60
je 0x42cac8
cmp esi, 0x70
je 0x42cac8
cmp esi, 0xe0
je 0x42cac8
cmp esi, 0x150
jne 0x42cadc
mov edx, dword [ebp - 0x1c]
and edx, 7
add edx, 0xf0
mov dword [0x4d3384], edx
jmp 0x42cb16
cmp esi, 0x80
je 0x42cb0c
cmp esi, 0x90
je 0x42cb0c
cmp esi, 0xa0
je 0x42cb0c
cmp esi, 0xb0
je 0x42cb0c
cmp esi, 0xc0
je 0x42cb0c
cmp esi, 0xd0
jne 0x42cb16
mov dword [0x4d3384], 0xf0
push 3
call fcn.0041c000
pop ecx
xor ecx, ecx
mov dword [ebp - 4], ecx
jmp 0x42cb62
cmp dword [ebp - 4], 0x4a
jne 0x42cb44
mov dword [0x4d3384], 0x150
push 4
call fcn.0041c000
pop ecx
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x42cb62
push 0x4cd6a8
mov edx, dword [ebp - 4]
push edx
push 0x22
call fcn.004965e4
add esp, 0xc
test eax, eax
jne 0x42cb62
xor eax, eax
jmp 0x42d559
push 0x196
push 0x4d3388
mov edx, dword [ebp - 0x34]
add edx, 0x2ec
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42cc24
cmp dword [0x4d338c], 0
jne 0x42cbfa
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
push edi
lea esi, [ecx + 0x2ec]
lea edi, [eax + 0x486]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
mov dword [0x4d3388], 1
push 0x80
push 0x4d3482
mov eax, dword [ebp - 0x34]
add eax, 0x3e6
push eax
call fcn.004a37d4
add esp, 0xc
test eax, eax
jne 0x42cbe6
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0x466]
cmp ecx, dword [0x4d3502]
je 0x42cbf0
mov dword [0x4d347e], 1
mov dword [0x4d338c], 1
mov eax, dword [ebp - 0x34]
push edi
mov esi, 0x4d3388
mov ecx, 0x65
lea edi, [eax + 0x2ec]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
push 0
push 0
push 0x476
call sym.ollydbg.exe__Broadcast
add esp, 0xc
cmp dword [ebp - 4], 0
je case.0x42a98c.1136
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_InvalidateRect
jmp case.0x42a98c.1136
cmp dword [0x4b2e5c], 1
jne 0x42cc56
push 2
call fcn.0041c000
pop ecx
jmp case.0x42a98c.1136
cmp dword [0x4b2e5c], 2
jne 0x42cc6c
push 3
call fcn.0041c000
pop ecx
jmp case.0x42a98c.1136
push 1
call fcn.0041c000
pop ecx
jmp case.0x42a98c.1136
mov edx, edi
shr edx, 0x10
test dx, dx
jne 0x42cc8c
cmp dword [0x4d3018], 0
je 0x42cc93
xor eax, eax
jmp 0x42d559
mov edx, dword [0x4cd8f9]
push edx
call sym.ollydbg.exe__Findthread
pop ecx
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x42ccb0
xor eax, eax
jmp 0x42d559
and di, 0xffff
movzx edx, di
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp + 0x14]
add ecx, dword [0x4d3014]
cmp dword [0x4d5798], 0
mov dword [ebp - 0x14], ecx
je 0x42ccd9
cmp dword [0x4d3018], 0
je 0x42ccdd
xor eax, eax
jmp 0x42cce2
mov eax, 1
mov dword [ebp - 0x2c], eax
mov ebx, 0x4b2e60
jmp 0x42cd36
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42ccf8
cmp dword [eax], 0
je 0x42cd33
cmp word [ebx + 2], 5
je 0x42cd0b
movsx edx, word [ebx + 2]
cmp edx, dword [0x4b2e5c]
jne 0x42cd33
xor ecx, ecx
mov cl, byte [ebx + 4]
cmp ecx, dword [ebp - 0x10]
jg 0x42cd33
xor eax, eax
mov al, byte [ebx + 5]
cmp eax, dword [ebp - 0x10]
jle 0x42cd33
xor edx, edx
mov dl, byte [ebx + 6]
cmp edx, dword [ebp - 0x14]
jg 0x42cd33
xor ecx, ecx
mov cl, byte [ebx + 7]
cmp ecx, dword [ebp - 0x14]
jg 0x42cd48
add ebx, 0x18
cmp word [ebx], 0
je 0x42cd48
cmp dword [ebp - 0x2c], 0
jne 0x42ccec
cmp byte [ebx + 6], 0x1e
jbe 0x42ccec
cmp word [ebx], 0
je 0x42cd5a
cmp dword [ebp - 0x2c], 0
jne 0x42cd61
cmp byte [ebx + 6], 0x1e
jbe 0x42cd61
xor eax, eax
jmp 0x42d559
cmp dword [0x4d36c0], 0
je 0x42cd77
call sub.USER32.DLL_ReleaseCapture
xor edx, edx
mov dword [0x4d36c0], edx
lea ecx, [ebp - 0x16c]
push ecx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_GetWindowRect
cmp dword [0x4cefe9], 0
je 0x42cda6
mov edx, dword [0x4ceefc]
mov ecx, dword [edx*4 + 0x4d4920]
add ecx, 4
add dword [ebp - 0x168], ecx
mov ebx, 0x4b2e60
jmp 0x42cdc7
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42cdb9
cmp dword [eax], 0
je 0x42cdc4
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42cdcd
add ebx, 0x18
cmp word [ebx], 0
jne 0x42cdad
cmp word [ebx], 0
jne 0x42cdea
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x14], eax
jmp 0x42ce83
mov ecx, dword [0x4ceff5]
xor edx, edx
mov dl, byte [ebx + 5]
mov eax, dword [ebp - 0x16c]
imul edx, dword [ecx*4 + 0x4d48f4]
sub eax, dword [0x4cf001]
add edx, eax
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x16c]
cmp edx, dword [ebp - 0x10]
jle 0x42ce24
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x10], ecx
jmp 0x42ce38
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x10]
jge 0x42ce38
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x10], edx
xor ecx, ecx
mov eax, dword [0x4ceff5]
mov cl, byte [ebx + 6]
sub ecx, dword [0x4d3014]
imul ecx, dword [eax*4 + 0x4d4920]
add ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x168]
cmp edx, dword [ebp - 0x14]
jle 0x42ce6f
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x14], ecx
jmp 0x42ce83
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x14]
jge 0x42ce83
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x34]
mov edi, 0x4d3388
lea esi, [ecx + 0x2ec]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [0x4d3384]
mov esi, dword [0x4d3384]
and eax, 0xf
and esi, 0x1f0
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
add edx, dword [0x4d33bc]
and edx, 0x80000007
jns 0x42cec7
dec edx
or edx, 0xfffffff8
inc edx
mov dword [ebp - 8], edx
cmp dword [ebx + 0x10], 0
je 0x42cefe
cmp esi, 0xc0
je 0x42cefe
cmp esi, 0x130
je 0x42cee8
cmp esi, 0x120
jne 0x42cef1
cmp dword [0x4d347a], 0
je 0x42cefe
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
xor dword [ecx], eax
jmp 0x42d32d
cmp esi, 0x10
jne 0x42cf82
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
mov ecx, dword [edx*4 + 0x4c2650]
push ecx
push str.Modify__s
push eax
call fcn.004a6c2c
add esp, 0xc
cmp dword [ebp - 0x1c], 4
jge 0x42cf53
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 0
mov eax, dword [ebp - 0x1c]
shl eax, 2
add eax, 0x4d3394
push eax
lea edx, [ebp - 0x15c]
push edx
call sym.ollydbg.exe__Getregxy
add esp, 0x14
jmp 0x42d32d
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
push 4
mov edx, dword [ebp - 0x1c]
shl edx, 2
add edx, 0x4d3394
push edx
lea ecx, [ebp - 0x15c]
push ecx
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42d32d
cmp esi, 0x40
jne 0x42d0bc
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x15c]
mov edx, dword [eax*4 + 0x4c2674]
push edx
push str.Modify__s
push ecx
call fcn.004a6c2c
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 2
push 0
push 2
mov ecx, dword [ebp - 0x1c]
shl ecx, 2
add ecx, 0x4d3420
push ecx
lea eax, [ebp - 0x15c]
push eax
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
test eax, eax
jne 0x42d32d
lea edx, [ebp - 0x40]
push edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx*4 + 0x4d3420]
push eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0xc]
push ecx
call sub.KERNEL32.DLL_GetThreadSelectorEntry
test eax, eax
je 0x42d097
movzx edx, word [ebp - 0x3e]
mov al, byte [ebp - 0x3c]
mov cl, byte [ebp - 0x39]
and eax, 0xff
and ecx, 0xff
shl eax, 0x10
and edx, 0xffff
and eax, 0xff0000
add eax, edx
mov edx, dword [ebp - 0x1c]
shl ecx, 0x18
and ecx, 0xff000000
add eax, ecx
mov dword [edx*4 + 0x4d3438], eax
movzx ecx, word [ebp - 0x40]
mov al, byte [ebp - 0x3a]
mov edx, dword [ebp - 0x1c]
and eax, 0xf
and ecx, 0xffff
shl eax, 0x10
and eax, 0xf0000
add eax, ecx
mov dword [edx*4 + 0x4d3450], eax
test byte [ebp - 0x3a], 0x80
je 0x42d080
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax*4 + 0x4d3450]
mov eax, dword [ebp - 0x1c]
shl ecx, 0xc
add ecx, 0xfff
mov dword [eax*4 + 0x4d3450], ecx
mov dl, byte [ebp - 0x3a]
mov ecx, dword [ebp - 0x1c]
shr edx, 6
and edx, 1
mov byte [ecx + 0x4d3468], dl
jmp 0x42d32d
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax*4 + 0x4d3450], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax*4 + 0x4d3438], edx
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x4d3468], 1
jmp 0x42d32d
cmp esi, 0x50
jne 0x42d0e6
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 2
push 0
push 4
push 0x4d33b8
push str.Modify_flags
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42d32d
cmp esi, 0x70
jne 0x42d142
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c2758]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0
mov edx, 0x4d3410
add edx, dword [ebp - 8]
push edx
mov ecx, dword [ebp - 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add ecx, 0x4d33c0
push ecx
lea eax, [ebp - 0x15c]
push eax
call sym.ollydbg.exe__Getfloat10xy
add esp, 0x1c
jmp 0x42d32d
cmp esi, 0x80
jne 0x42d16f
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 2
push 0
push 2
push 0x4d3418
push str.Modify_FPU_status
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42d32d
cmp esi, 0xb0
jne 0x42d19c
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 2
push 0
push 2
push 0x4d341c
push str.Modify_FPU_control_word
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
jmp 0x42d32d
cmp esi, 0xe0
jne 0x42d208
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x15c]
mov eax, dword [ecx*4 + 0x4c277c]
push eax
push str.Modify__s
push edx
call fcn.004a6c2c
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push ecx
mov eax, dword [ebp - 0x10]
push eax
push 0
mov edx, dword [ebp - 0x1c]
add edx, edx
lea edx, [edx + edx*4]
add edx, 0x4d33c0
push edx
lea ecx, [ebp - 0x15c]
push ecx
call sym.ollydbg.exe__Getmmxxy
add esp, 0x14
test eax, eax
jne 0x42d32d
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
mov word [eax*2 + 0x4d33c8], 0xffff
jmp 0x42d32d
cmp esi, 0xf0
jne 0x42d274
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
mov ecx, dword [edx*4 + 0x4c277c]
push ecx
push str.Modify__s_as_3DNow_
push eax
call fcn.004a6c2c
add esp, 0xc
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 0
mov eax, dword [ebp - 0x1c]
add eax, eax
lea eax, [eax + eax*4]
add eax, 0x4d33c0
push eax
lea edx, [ebp - 0x15c]
push edx
call sym.ollydbg.exe__Get3dnowxy
add esp, 0x14
test eax, eax
jne 0x42d32d
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + ecx*4]
mov word [ecx*2 + 0x4d33c8], 0xffff
jmp 0x42d32d
cmp esi, 0x100
jne 0x42d2cc
cmp dword [0x4d347a], 0
je 0x42d2cc
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x15c]
mov edx, dword [eax*4 + 0x4c27a0]
push edx
push str.Modify__s
push ecx
call fcn.004a6c2c
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0x10]
push edx
push 0
mov ecx, dword [ebp - 0x1c]
shl ecx, 4
add ecx, 0x4d3482
push ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00441478
add esp, 0x14
jmp 0x42d32d
cmp esi, 0x110
jne 0x42d312
cmp dword [0x4d347a], 0
je 0x42d312
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 2
push 0
push 4
push 0x4d3502
push str.Modify_MXCSR
call sym.ollydbg.exe__Getlongxy
add esp, 0x1c
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x42d32d
mov dword [0x4d347e], 1
jmp 0x42d32d
cmp esi, 0x20
jne 0x42d32d
push 5
push 0
push 0
mov eax, dword [0x4d33b4]
push eax
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
push 0x196
push 0x4d3388
mov edx, dword [ebp - 0x34]
add edx, 0x2ec
push edx
call fcn.004a37d4
add esp, 0xc
test eax, eax
je 0x42d3f8
cmp dword [0x4d338c], 0
jne 0x42d3c3
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
lea esi, [ecx + 0x2ec]
lea edi, [eax + 0x486]
mov ecx, 0x65
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x80
push 0x4d3482
mov eax, dword [ebp - 0x34]
mov dword [0x4d3388], 1
add eax, 0x3e6
push eax
call fcn.004a37d4
add esp, 0xc
test eax, eax
jne 0x42d3af
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0x466]
cmp ecx, dword [0x4d3502]
je 0x42d3b9
mov dword [0x4d347e], 1
mov dword [0x4d338c], 1
mov eax, dword [ebp - 0x34]
mov esi, 0x4d3388
mov ecx, 0x65
lea edi, [eax + 0x2ec]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
push 0
push 0x476
call sym.ollydbg.exe__Broadcast
add esp, 0xc
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_InvalidateRect
mov eax, 1
jmp 0x42d559
lea edx, [ebp - 0x16c]
push edx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_GetClientRect
cmp dword [0x4cefe9], 1
jne 0x42d430
mov eax, dword [0x4ceefc]
mov edx, dword [eax*4 + 0x4d4920]
add edx, 4
mov dword [ebp - 0x168], edx
mov ecx, dword [0x4ceff5]
cmp dword [0x4d3384], 0
mov esi, dword [ecx*4 + 0x4d48f4]
je 0x42d52d
mov ebx, 0x4b2e60
jmp 0x42d46b
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42d45d
cmp dword [eax], 0
je 0x42d468
movsx edx, word [ebx]
cmp edx, dword [0x4d3384]
je 0x42d471
add ebx, 0x18
cmp word [ebx], 0
jne 0x42d451
cmp byte [ebx + 5], 0xff
je 0x42d4a2
xor ecx, ecx
mov eax, dword [0x4cf001]
mov cl, byte [ebx + 5]
imul ecx, esi
add eax, dword [ebp - 0x164]
cmp ecx, eax
jle 0x42d4a2
xor edx, edx
mov dl, byte [ebx + 5]
imul edx, esi
sub edx, dword [ebp - 0x164]
mov dword [0x4cf001], edx
xor ecx, ecx
mov cl, byte [ebx + 4]
imul ecx, esi
cmp ecx, dword [0x4cf001]
jge 0x42d4be
xor eax, eax
mov al, byte [ebx + 4]
imul esi
mov dword [0x4cf001], eax
mov edx, dword [0x4ceff5]
mov eax, dword [ebp - 0x160]
sub eax, dword [ebp - 0x168]
mov ecx, dword [edx*4 + 0x4d4920]
cdq
idiv ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 1
jge 0x42d4ea
mov dword [ebp - 0xc], 1
mov edx, dword [0x4d3014]
xor eax, eax
add edx, dword [ebp - 0xc]
mov al, byte [ebx + 7]
cmp eax, edx
jl 0x42d509
xor eax, eax
mov al, byte [ebx + 7]
sub eax, dword [ebp - 0xc]
mov dword [0x4d3014], eax
xor ecx, ecx
mov cl, byte [ebx + 6]
cmp ecx, dword [0x4d3014]
jge 0x42d520
xor eax, eax
mov al, byte [ebx + 6]
mov dword [0x4d3014], eax
push 0
push 0
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_InvalidateRect
push fcn.00428dc4
push 0x4cedbc
mov ecx, dword [ebp + 8]
push ecx
call sym.ollydbg.exe__Painttable
add esp, 0xc
xor eax, eax
jmp 0x42d559
mov edx, dword [ebp + 0x14]
push edx
push edi
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_DefWindowProcA
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10