Function at 0x41cb94
Capabilities:
Encrypt data using rc4 ksa
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x28
push 0
push 0
dec ecx
jne 0x41cb9c
push ecx
push ebx
push esi
push edi
mov eax, dword [0x422038]
mov byte [eax], 1
mov eax, 0x41cafc
call fcn.00406168
xor eax, eax
push ebp
push 0x41e6c6
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x24]
mov eax, 1
call fcn.00402d54
cmp dword [ebp - 0x24], 0
jne 0x41d0aa
push 0x41e6e0
lea eax, [ebp - 0x2c]
mov edx, 0x4216a8
call fcn.00404618
push dword [ebp - 0x2c]
push 0x41e7a4
push 0x41e7c8
push 0x41e7d4
lea ecx, [ebp - 0x30]
xor edx, edx
mov dl, byte [0x4216a8]
mov al, 0x3d
call fcn.004049b8
push dword [ebp - 0x30]
push 0x41e7c8
push 0x41e7c8
push 0x41e804
push 0x41e7c8
push 0x41e838
push 0x41e7c8
push 0x41e7c8
push 0x41e880
push 0x41e7c8
push 0x41e8ac
push 0x41e7c8
push 0x41e8d8
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41e90c
push 0x41e7c8
push 0x41e920
push 0x41e7c8
push 0x41e978
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41e9cc
push 0x41e7c8
push 0x41e7c8
push 0x41e9e4
push 0x41e7c8
push 0x41e7c8
push 0x41e9fc
push 0x41e7c8
push 0x41ea54
push 0x41e7c8
push 0x41eaac
push 0x41e7c8
push 0x41eb04
push 0x41e7c8
push 0x41e7c8
push 0x41eb54
push 0x41e7c8
push 0x41ebac
push 0x41e7c8
push 0x41ec04
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41ec48
push 0x41e7c8
push 0x41e7c8
push 0x41ec68
push 0x41e7c8
push 0x41ec7c
push 0x41e7c8
push 0x41ecd4
push 0x41e7c8
push 0x41ed2c
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41ed80
push 0x41e7c8
push 0x41e7c8
push 0x41eda8
push 0x41e7c8
push 0x41ee00
push 0x41e7c8
push 0x41ee58
push 0x41e7c8
push 0x41eeb0
push 0x41e7c8
push 0x41e7c8
push 0x41ef08
push 0x41e7c8
push 0x41ef1c
push 0x41e7c8
push 0x41ef74
push 0x41e7c8
push 0x41efcc
push 0x41e7c8
push 0x41f024
push 0x41e7c8
push 0x41e7c8
push 0x41f068
push 0x41e7c8
push 0x41f07c
push 0x41e7c8
push 0x41f0d4
push 0x41e7c8
push 0x41f12c
push 0x41e7c8
push 0x41e7c8
push 0x41f180
push 0x41e7c8
push 0x41f194
push 0x41e7c8
push 0x41f1ec
push 0x41e7c8
push 0x41f244
push 0x41e7c8
push 0x41e7c8
push 0x41f298
push 0x41e7c8
push 0x41f2ac
push 0x41e7c8
push 0x41f304
push 0x41e7c8
push 0x41f35c
push 0x41e7c8
push 0x41f3b4
push 0x41e7c8
push 0x41e7c8
push 0x41f3f4
push 0x41e7c8
push 0x41f408
push 0x41e7c8
push 0x41f460
push 0x41e7c8
push 0x41f4b8
push 0x41e7c8
push 0x41f510
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41f54c
push 0x41e7c8
push 0x41e7c8
push 0x41f564
push 0x41e7c8
push 0x41f5bc
push 0x41e7c8
push 0x41f614
push 0x41e7c8
push 0x41f66c
push 0x41e7c8
push 0x41f6c4
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41f6f8
push 0x41e7c8
push 0x41e7c8
push 0x41f718
push 0x41e7c8
push 0x41f770
push 0x41e7c8
push 0x41f7c8
push 0x41e7c8
push 0x41f820
push 0x41e7c8
push 0x41f878
push 0x41e7c8
push 0x41e7c8
push 0x41f8cc
push 0x41e7c8
push 0x41f924
push 0x41e7c8
push 0x41f97c
push 0x41e7c8
push 0x41f9d4
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41fa00
push 0x41e7c8
push 0x41e7c8
push 0x41fa1c
push 0x41e7c8
push 0x41fa74
push 0x41e7c8
push 0x41facc
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41fb10
push 0x41e7c8
push 0x41e7c8
push 0x41fb2c
push 0x41e7c8
push 0x41fb6c
push 0x41e7c8
push 0x41fbac
push 0x41e7c8
push 0x41fbe8
push 0x41e7c8
push 0x41fc24
push 0x41e7c8
push 0x41fc60
push 0x41e7c8
push 0x41fca0
push 0x41e7c8
push 0x41fce0
push 0x41e7c8
push 0x41e7c8
push 0x41fd30
push 0x41e7c8
push 0x41e7c8
push 0x41fd68
push 0x41e7c8
push 0x41fdc0
push 0x41e7c8
push 0x41e7c8
push 0x41e7c8
push 0x41fe10
push 0x41e7c8
push 0x41e7c8
push 0x41fe28
push 0x41e7c8
push 0x41fe7c
push 0x41e7c8
push 0x41fed0
push 0x41e7c8
push 0x41e7c8
push 0x41ff08
push 0x41e7c8
push 0x41ff3c
push 0x41e7c8
push 0x41ff7c
push 0x41e7c8
push 0x41ffbc
push 0x41ffe0
push 0x41ffec
push 0x41e7c8
push 0x420010
push 0x41e7c8
lea eax, [ebp - 0x28]
mov edx, 0xe6
call fcn.00404734
mov edx, dword [ebp - 0x28]
mov eax, dword [0x421f40]
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
mov eax, 1
call fcn.0040439c
jmp 0x41d1e3
mov dl, 1
mov eax, dword [0x415e74]
call fcn.00419e84
mov dword [0x4238e4], eax
xor eax, eax
push ebp
push 0x41d1c5
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x34]
mov eax, 1
call fcn.00402d54
mov eax, dword [ebp - 0x34]
call fcn.00407ec4
test al, al
je 0x41d0eb
mov byte [0x4238ec], 3
jmp 0x41d120
lea edx, [ebp - 0x38]
mov eax, 1
call fcn.00402d54
mov eax, dword [ebp - 0x38]
push eax
mov eax, 0x420050
mov dword [ebp - 0x40], eax
mov eax, 0x42005c
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x40]
mov ecx, 1
pop eax
call fcn.0041c330
inc eax
mov byte [0x4238ec], al
mov al, byte [0x4238ec]
dec al
je 0x41d136
dec al
je 0x41d162
dec al
je 0x41d19a
jmp 0x41d1b6
call fcn.0041c9e8
test al, al
je 0x41d15b
mov edx, dword [0x423a14]
mov eax, dword [0x4238e4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [0x423a14]
call fcn.004038b0
jmp 0x41d1bb
call fcn.0040b3bc
jmp 0x41d1bb
push 0
call sub.user32.dll_OpenClipboard
test eax, eax
je 0x41d193
push 9
call sub.user32.dll_GetClipboardData
push eax
push 2
call sub.user32.dll_GetClipboardData
mov ecx, eax
mov dx, 2
mov eax, dword [0x4238e4]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
call sub.user32.dll_CloseClipboard
jmp 0x41d1bb
call fcn.0040b3bc
jmp 0x41d1bb
lea edx, [ebp - 0x44]
mov eax, 1
call fcn.00402d54
mov edx, dword [ebp - 0x44]
mov eax, dword [0x4238e4]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
jmp 0x41d1bb
call fcn.0040b3bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d1e3
lea edx, [ebp - 0x4c]
mov eax, 2
call fcn.00402d54
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x48]
call fcn.00407630
mov eax, dword [ebp - 0x48]
push eax
mov eax, 0x420068
mov dword [ebp - 0x60], eax
mov eax, 0x420074
mov dword [ebp - 0x5c], eax
mov eax, 0x420080
mov dword [ebp - 0x58], eax
mov eax, 0x42008c
mov dword [ebp - 0x54], eax
mov eax, 0x420098
mov dword [ebp - 0x50], eax
lea edx, [ebp - 0x60]
mov ecx, 4
pop eax
call fcn.0041c330
inc eax
mov byte [0x4238ec], al
mov byte [0x4238ef], 1
mov byte [0x4238f0], 0
lea edx, [ebp - 0x64]
mov eax, 2
call fcn.00402d54
mov eax, dword [ebp - 0x64]
mov edx, 1
call fcn.00407a88
mov edx, 1
call fcn.0041c28c
mov edx, 8
call fcn.0041c210
mov ebx, eax
dec ebx
mov word [0x4238fc], 0x20
mov ecx, ebx
mov eax, 0xff
shr eax, cl
mov ecx, ebx
shl al, cl
mov byte [0x4238ee], al
xor ebx, ebx
mov esi, 0x421ea8
lea edx, [ebp - 0x68]
xor eax, eax
mov al, bl
add eax, 4
call fcn.00402d54
cmp dword [ebp - 0x68], 0
je 0x41d32b
lea edx, [ebp - 0x6c]
xor eax, eax
mov al, bl
add eax, 4
call fcn.00402d54
mov eax, dword [ebp - 0x6c]
cmp byte [eax], 0x23
jne 0x41d310
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0x78]
xor eax, eax
mov al, bl
add eax, 4
call fcn.00402d54
mov eax, dword [ebp - 0x78]
mov ecx, 0xa
mov edx, 2
call fcn.004048cc
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
mov edx, 0x4200a4
call fcn.004046c0
mov eax, dword [ebp - 0x70]
xor edx, edx
call fcn.00407a88
call fcn.0041c464
mov dword [esi], eax
jmp 0x41d32b
lea edx, [ebp - 0x7c]
xor eax, eax
mov al, bl
add eax, 4
call fcn.00402d54
mov eax, dword [ebp - 0x7c]
xor edx, edx
call fcn.00407a88
mov dword [esi], eax
inc ebx
add esi, 4
cmp bl, 2
jne 0x41d29c
mov dl, 6
mov eax, dword [0x4238e4]
call fcn.0041b780
mov eax, dword [0x4238e4]
call fcn.0041a510
mov eax, dword [eax + 0x14]
mov edx, dword [0x421eac]
call fcn.004175fc
push 4
mov eax, dword [0x4238e4]
call fcn.0041a510
call fcn.00417be4
push eax
call sub.gdi32.dll_SetStretchBltMode_1
mov al, byte [0x4200a8]
push eax
lea eax, [ebp - 0x80]
push eax
lea edx, [ebp - 0x84]
mov eax, 3
call fcn.00402d54
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov edx, 0x4200b4
call fcn.0040c9f8
mov eax, dword [ebp - 0x80]
xor edx, edx
call fcn.00407a88
push eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
imul ebx, eax
mov eax, ebx
pop edx
call fcn.0041c210
mov dword [0x4238e8], eax
cmp dword [0x4238e8], 1
jge 0x41d3e8
mov dword [0x4238f4], 0x3f800000
jmp 0x41d475
lea edx, [ebp - 0x88]
mov eax, 3
call fcn.00402d54
mov edx, dword [ebp - 0x88]
mov eax, 0x4200b4
call fcn.0040490c
test eax, eax
jle 0x41d439
mov edx, dword [0x4238e8]
mov eax, 0x64
call fcn.0041c210
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fld xword [0x4200b8]
fmulp st(1)
fstp dword [0x4238f4]
wait
jmp 0x41d475
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
imul ebx, eax
mov dword [ebp - 0x8c], ebx
fild dword [ebp - 0x8c]
fild dword [0x4238e8]
fdivp st(1)
fsqrt
fdivr dword [0x4200c4]
fstp dword [0x4238f4]
wait
fld dword [0x4238f4]
fcomp dword [0x4200c4]
fnstsw ax
sahf
jae 0x41d56e
push 0
push 2
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fmul dword [0x4238f4]
call fcn.00402de8
push edx
push eax
call fcn.0041c2b8
mov word [0x4238fe], ax
push 0
push 2
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fmul dword [0x4238f4]
call fcn.00402de8
push edx
push eax
call fcn.0041c2b8
mov word [0x4238f8], ax
mov eax, dword [0x4238e4]
call fcn.0041a510
lea edx, [ebp - 0x9c]
call fcn.00417bb0
lea eax, [ebp - 0x9c]
push eax
movzx eax, word [0x4238f8]
push eax
lea eax, [ebp - 0xac]
push eax
movzx ecx, word [0x4238fe]
xor edx, edx
xor eax, eax
call fcn.004114c0
lea eax, [ebp - 0xac]
push eax
mov eax, dword [0x4238e4]
call fcn.0041a510
push eax
mov eax, dword [0x4238e4]
call fcn.0041a510
pop ecx
pop edx
call fcn.00417908
movzx edx, word [0x4238fe]
mov eax, dword [0x4238e4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
movzx edx, word [0x4238f8]
mov eax, dword [0x4238e4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, 0x423904
call fcn.004043b4
xor eax, eax
mov dword [0x42390c], eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
and eax, 1
add ebx, eax
mov edx, ebx
mov eax, dword [0x4238e4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp byte [0x4238ec], 0
jbe 0x41d74d
cmp byte [0x4238ec], 5
jae 0x41d6ca
mov eax, 0x423908
call fcn.004043b4
xor eax, eax
mov dword [0x423910], eax
mov eax, 0x423908
mov edx, 0x900b
call fcn.00404954
xor eax, eax
mov al, byte [0x4238ec]
shr eax, 2
imul eax, eax, 0x7000
add eax, 0x1000
push eax
mov eax, 0x423a20
mov ecx, 1
mov edx, dword [0x41c444]
call fcn.004052d0
add esp, 4
push 9
mov ecx, 0x423910
mov edx, 0x423908
mov eax, 0x4200d0
call fcn.0041c490
cmp byte [0x4238ec], 3
jne 0x41d6ca
push 0x1d
mov eax, 0x423a24
mov ecx, 1
mov edx, dword [0x41c444]
call fcn.004052d0
add esp, 4
xor ebx, ebx
xor eax, eax
mov al, bl
mov ecx, 0xa
xor edx, edx
div ecx
test edx, edx
jbe 0x41d6c4
push 0
push 9
xor eax, eax
mov al, bl
mov ecx, 0xa
xor edx, edx
div ecx
inc eax
add eax, eax
lea eax, [eax + eax*4]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x4200dc]
call fcn.00402de8
push edx
push eax
xor eax, eax
mov al, bl
xor edx, edx
call fcn.00405054
call fcn.00405078
mov ecx, eax
mov ax, 1
shl ax, cl
xor edx, edx
mov dl, bl
mov ecx, dword [0x423a24]
or ax, word [ecx + edx*2 - 2]
xor edx, edx
mov dl, bl
mov ecx, dword [0x423a24]
mov word [ecx + edx*2], ax
inc ebx
cmp bl, 0x1e
jne 0x41d64d
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
inc ebx
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x41d6e8
adc eax, 0
imul ebx, eax
add ebx, 2
push ebx
mov eax, 0x423a1c
mov ecx, 1
mov edx, dword [0x41c424]
call fcn.004052d0
add esp, 4
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
imul ebx, eax
xor eax, eax
mov al, byte [0x4238ec]
shr eax, 2
add eax, 8
imul ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
shl eax, 2
add ebx, eax
mov edx, ebx
mov eax, 0x423904
call fcn.00404954
jmp 0x41d784
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
imul ebx, eax
imul ebx, ebx, 0x44
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
shl eax, 2
add ebx, eax
mov edx, ebx
mov eax, 0x423904
call fcn.00404954
push 0x4200e8
lea eax, [ebp - 0xb4]
mov edx, 0x4216a8
call fcn.00404618
push dword [ebp - 0xb4]
push 0x42015c
push 0x41e7c8
push 0x420188
lea eax, [ebp - 0xb8]
push eax
mov al, byte [0x420190]
push eax
lea eax, [ebp - 0xbc]
push eax
mov al, byte [0x420190]
push eax
lea eax, [ebp - 0xc0]
push eax
lea edx, [ebp - 0xc8]
mov eax, 1
call fcn.00402d54
mov eax, dword [ebp - 0xc8]
lea edx, [ebp - 0xc4]
call fcn.00407f54
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
mov edx, 0x420050
call fcn.0040c9f8
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
mov edx, 0x42005c
call fcn.0040c9f8
mov eax, dword [ebp - 0xbc]
push eax
lea edx, [ebp - 0xcc]
mov eax, 6
call fcn.00402d54
mov eax, dword [ebp - 0xcc]
push eax
lea edx, [ebp - 0xd0]
mov eax, 6
call fcn.00402d54
mov eax, dword [ebp - 0xd0]
call fcn.00404674
dec eax
setg al
pop edx
pop ecx
call fcn.0041c384
push dword [ebp - 0xb8]
push 0x42019c
push 0x41e7c8
push 0x4201b0
push 0x41e7c8
push 0x4201c0
mov eax, dword [0x421ea8]
call fcn.0041c464
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xd4]
mov eax, 6
call fcn.00407a58
push dword [ebp - 0xd4]
push 0x4201e8
push 0x41e7c8
push 0x4201f4
mov eax, dword [0x421eac]
call fcn.0041c464
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xd8]
mov eax, 6
call fcn.00407a58
push dword [ebp - 0xd8]
push 0x42021c
mov eax, dword [0x421eac]
call fcn.0041c464
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xdc]
mov eax, 6
call fcn.00407a58
push dword [ebp - 0xdc]
push 0x420230
push 0x41ffe0
push 0x420248
push 0x41ffe0
push 0x420260
lea eax, [ebp - 0xb0]
mov edx, 0x17
call fcn.00404734
mov edx, dword [ebp - 0xb0]
mov eax, dword [0x421f40]
call fcn.004049e4
call fcn.00403138
call fcn.00402b1c
cmp byte [0x4238ec], 0
jne 0x41d95c
mov eax, dword [0x421f40]
mov edx, 0x4202a8
call fcn.004049e4
call fcn.00403138
call fcn.00402b1c
mov eax, dword [0x421f40]
call fcn.004033c0
call fcn.00402b1c
mov dword [0x423910], 9
xor ebx, ebx
mov esi, 0x423c38
mov dword [esi], 0xffffffff
inc ebx
add esi, 4
cmp bl, 4
jne 0x41d97c
cmp byte [0x4238f0], 0
je 0x41d9de
mov eax, dword [0x423a20]
call fcn.004050f4
mov word [0x423900], ax
push 0
mov eax, 0x423a20
mov ecx, 1
mov edx, dword [0x41c444]
call fcn.004052d0
add esp, 4
movzx eax, word [0x423900]
push eax
mov eax, 0x423a20
mov ecx, 1
mov edx, dword [0x41c444]
call fcn.004052d0
add esp, 4
mov byte [0x4238f0], 1
mov word [0x423900], 0
dec word [0x4238fc]
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x41da06
adc eax, 0
dec eax
test ax, ax
jb 0x41e47e
inc eax
mov word [ebp - 0x12], ax
mov word [0x4238f8], 0
movzx eax, word [0x4238f8]
mov edx, eax
add edx, edx
mov eax, dword [0x4238e4]
call fcn.0041a770
mov dword [0x423a28], eax
movzx eax, word [0x4238f8]
mov edx, eax
add edx, edx
inc edx
mov eax, dword [0x4238e4]
call fcn.0041a770
mov dword [0x423a2c], eax
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
dec eax
test ax, ax
jb 0x41e422
inc eax
mov word [ebp - 0x14], ax
mov word [0x4238fe], 0
movzx eax, word [0x4238fe]
lea eax, [eax + eax*2]
mov dword [0x423a18], eax
mov byte [0x4238ed], 0
mov edi, 0x423a30
mov esi, 0x423a28
mov dword [ebp - 0x18], 0x423c48
mov dword [ebp - 0x1c], 0x423c30
cmp byte [0x4238ec], 0
jne 0x41dacc
mov byte [edi], 0
xor ebx, ebx
xor eax, eax
mov al, bl
add eax, dword [0x423a18]
mov edx, dword [esi]
mov cl, byte [0x4238ee]
and byte [edx + eax], cl
inc ebx
cmp bl, 3
jne 0x41dab1
xor eax, eax
mov al, byte [0x4238ed]
add eax, eax
mov edx, dword [eax*4 + 0x423c3c]
mov dword [eax*4 + 0x423c38], edx
mov edx, dword [esi]
mov ecx, dword [0x423a18]
movzx edx, byte [edx + ecx]
shl edx, 0x10
mov ecx, dword [esi]
mov ebx, dword [0x423a18]
movzx ecx, byte [ecx + ebx + 1]
shl ecx, 8
or edx, ecx
mov ecx, dword [esi]
mov ebx, dword [0x423a18]
movzx ecx, byte [ecx + ebx + 2]
or edx, ecx
mov dword [eax*4 + 0x423c3c], edx
xor eax, eax
mov al, byte [0x4238ed]
add eax, eax
mov eax, dword [eax*4 + 0x423c3c]
cdq
push edx
push eax
mov eax, dword [0x421eac]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x41db3d
cmp eax, dword [esp]
pop edx
pop eax
jne 0x41db4c
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
jmp 0x41e0ea
mov eax, dword [ebp - 0x18]
mov byte [eax], 1
cmp byte [0x4238ec], 0
jbe 0x41e03b
cmp byte [0x4238ec], 5
jne 0x41dc0a
mov eax, dword [esi]
mov edx, dword [0x423a18]
mov bl, byte [eax + edx]
xor eax, eax
mov al, bl
mov edx, dword [esi]
mov ecx, dword [0x423a18]
movzx edx, byte [edx + ecx + 1]
add eax, edx
mov edx, dword [esi]
mov ecx, dword [0x423a18]
movzx edx, byte [edx + ecx + 2]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov word [0x423900], ax
xor eax, eax
mov al, bl
mov dword [ebp - 0xe8], eax
mov eax, dword [esi]
mov edx, dword [0x423a18]
movzx eax, byte [eax + edx + 1]
mov dword [ebp - 0xe4], eax
mov eax, dword [esi]
mov edx, dword [0x423a18]
movzx eax, byte [eax + edx + 2]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0xe8]
mov edx, 2
call fcn.0041c23c
movzx edx, word [0x423900]
sub eax, edx
sar eax, 1
jns 0x41dbf8
adc eax, 0
add ax, word [0x423900]
mov edx, dword [ebp - 0x1c]
mov word [edx], ax
jmp 0x41e0ea
cmp byte [0x4238ec], 4
jne 0x41dc98
xor ebx, ebx
mov dword [ebp - 0x20], 0x423c34
movzx eax, word [0x4238fc]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x4202b0]
xor eax, eax
mov al, bl
add eax, dword [0x423a18]
mov edx, dword [esi]
movzx eax, byte [edx + eax]
mov dword [ebp - 0xec], eax
fild dword [ebp - 0xec]
fmulp st(1)
call fcn.00402ddc
mov edx, dword [ebp - 0x20]
mov byte [edx], al
inc ebx
inc dword [ebp - 0x20]
cmp bl, 3
jne 0x41dc20
xor eax, eax
mov al, byte [0x423c34]
shl eax, 0xa
xor edx, edx
mov dl, byte [0x423c35]
shl edx, 5
or ax, dx
xor edx, edx
mov dl, byte [0x423c36]
or ax, dx
mov word [0x4238fa], ax
jmp 0x41de6c
xor ebx, ebx
mov dword [ebp - 0x20], 0x423c34
xor eax, eax
mov al, bl
add eax, dword [0x423a18]
mov edx, dword [esi]
movzx eax, byte [edx + eax]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x4202b4]
fstp dword [0x4238f4]
wait
mov al, byte [0x4238ec]
dec al
je 0x41dce4
dec al
je 0x41dd54
dec al
je 0x41ddb2
jmp 0x41de36
fld dword [0x4238f4]
call fcn.00402db8
fmul dword [0x4202b8]
call fcn.00402de8
shld edx, eax, 2
shl eax, 2
push edx
push eax
xor eax, eax
mov al, byte [0x4238ed]
add eax, eax
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
movzx eax, word [0x4238fe]
and eax, 1
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, eax
mov eax, 0xfd980
shr eax, cl
and al, 1
push eax
fld dword [0x4238f4]
call fcn.00402de8
pop edx
add dl, al
mov eax, dword [ebp - 0x20]
mov byte [eax], dl
jmp 0x41de36
fld dword [0x4238f4]
call fcn.00402db8
fld xword [0x4202bc]
fmulp st(1)
call fcn.00402de8
mov byte [0x4238ee], al
fld dword [0x4238f4]
call fcn.00402de8
mov dl, byte [0x4238ee]
and dl, 1
mov cl, byte [0x4238fe]
add cl, byte [0x4238ed]
add cl, bl
and cl, 1
imul dx, cx
xor ecx, ecx
mov cl, byte [0x4238ee]
shr ecx, 1
or dl, cl
add al, dl
mov edx, dword [ebp - 0x20]
mov byte [edx], al
jmp 0x41de36
fld dword [0x4238f4]
call fcn.00402db8
fmul dword [0x4202c8]
call fcn.00402de8
push edx
push eax
xor eax, eax
mov al, bl
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov edx, dword [0x423a24]
movzx eax, word [edx + eax*2]
push eax
movzx eax, word [0x4238f8]
add eax, eax
xor edx, edx
mov dl, byte [0x4238ed]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
lea ecx, [edx + edx*2]
movzx eax, word [0x4238fe]
push ecx
mov ecx, 3
xor edx, edx
div ecx
pop ecx
add ecx, edx
pop eax
shr eax, cl
and al, 1
push eax
fld dword [0x4238f4]
call fcn.00402de8
pop edx
add dl, al
mov eax, dword [ebp - 0x20]
mov byte [eax], dl
inc ebx
inc dword [ebp - 0x20]
cmp bl, 3
jne 0x41dca1
xor eax, eax
mov al, byte [0x423c34]
shl eax, 8
xor edx, edx
mov dl, byte [0x423c35]
shl edx, 4
or ax, dx
xor edx, edx
mov dl, byte [0x423c36]
or ax, dx
mov word [0x4238fa], ax
movzx eax, word [0x4238fa]
mov edx, dword [0x423a20]
cmp word [edx + eax*2], 0
jne 0x41e01e
cmp byte [0x4238ec], 4
jne 0x41de9c
cmp word [0x423900], 0xfff
je 0x41d96b
inc word [0x423900]
movzx eax, word [0x4238fa]
mov edx, dword [0x423a20]
mov cx, word [0x423900]
mov word [edx + eax*2], cx
mov word [0x423914], 0x2201
mov bl, 2
mov dword [ebp - 0x20], 0x423c36
cmp byte [0x4238ec], 4
jne 0x41df0f
movzx eax, word [0x4238fc]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdivr dword [0x4202b0]
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
mov dword [ebp - 0xec], eax
fild dword [ebp - 0xec]
fmulp st(1)
call fcn.00402ddc
mov byte [0x4238ee], al
jmp 0x41df20
mov eax, dword [ebp - 0x20]
mov al, byte [eax]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [0x4238ee], al
lea eax, [ebp - 0xf4]
mov edx, 0x423914
call fcn.00404618
push dword [ebp - 0xf4]
lea eax, [ebp - 0xfc]
xor edx, edx
mov dl, byte [0x4238ee]
shr edx, 4
mov dl, byte [edx + 0x4217a9]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xfc]
lea eax, [ebp - 0xf8]
call fcn.00404618
push dword [ebp - 0xf8]
lea eax, [ebp - 0x100]
mov dl, byte [0x4238ee]
and dl, 0xf
and edx, 0xff
mov dl, byte [edx + 0x4217a9]
call fcn.0040459c
push dword [ebp - 0x100]
lea eax, [ebp - 0xf0]
mov edx, 3
call fcn.00404734
mov edx, dword [ebp - 0xf0]
mov eax, 0x423914
mov ecx, 0xff
call fcn.00404650
dec ebx
dec dword [ebp - 0x20]
cmp bl, 0xff
jne 0x41decd
lea eax, [ebp - 0x104]
mov edx, 0x423914
call fcn.00404618
lea eax, [ebp - 0x104]
mov edx, 0x4202d4
call fcn.0040467c
mov edx, dword [ebp - 0x104]
mov eax, 0x423914
mov ecx, 0xff
call fcn.00404650
push 9
lea eax, [ebp - 0x108]
mov edx, 0x423914
call fcn.00404618
mov eax, dword [ebp - 0x108]
mov ecx, 0x423910
mov edx, 0x423908
call fcn.0041c490
movzx eax, word [0x4238fa]
mov edx, dword [0x423a20]
mov ax, word [edx + eax*2]
dec eax
mov edx, dword [ebp - 0x1c]
mov word [edx], ax
jmp 0x41e0ea
mov bl, 2
xor eax, eax
mov al, bl
add eax, dword [0x423a18]
mov edx, dword [esi]
mov al, byte [edx + eax]
mov byte [0x423c34], al
lea eax, [ebp - 0x110]
mov edx, edi
call fcn.00404618
push dword [ebp - 0x110]
lea eax, [ebp - 0xfc]
xor edx, edx
mov dl, byte [0x423c34]
shr edx, 4
mov dl, byte [edx + 0x4217a9]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xfc]
lea eax, [ebp - 0x114]
call fcn.00404618
push dword [ebp - 0x114]
lea eax, [ebp - 0x118]
mov dl, byte [0x423c34]
and dl, 0xf
and edx, 0xff
mov dl, byte [edx + 0x4217a9]
call fcn.0040459c
push dword [ebp - 0x118]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.00404734
mov edx, dword [ebp - 0x10c]
mov eax, edi
mov ecx, 0xff
call fcn.00404650
dec ebx
cmp bl, 0xff
jne 0x41e03d
inc byte [0x4238ed]
add dword [ebp - 0x1c], 2
inc dword [ebp - 0x18]
add esi, 4
add edi, 0x100
cmp byte [0x4238ed], 2
jne 0x41daa3
cmp byte [0x4238ec], 0
jbe 0x41e24b
xor eax, eax
mov al, byte [0x423c48]
add eax, eax
xor edx, edx
mov dl, byte [0x423c49]
or eax, edx
sub eax, 1
jb 0x41e147
je 0x41e17c
dec eax
je 0x41e1bc
dec eax
je 0x41e1ff
jmp 0x41e411
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
movzx edx, word [0x4238f8]
imul edx
movzx edx, word [0x4238f8]
add eax, edx
movzx edx, word [0x4238fe]
add eax, edx
mov edx, dword [0x423a1c]
xor ecx, ecx
mov dword [edx + eax*4], ecx
jmp 0x41e411
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
movzx edx, word [0x4238f8]
imul edx
movzx edx, word [0x4238f8]
add eax, edx
movzx edx, word [0x4238fe]
add eax, edx
mov edx, dword [0x423a1c]
movzx ecx, word [0x423c32]
or ecx, 0x1000000
mov dword [edx + eax*4], ecx
jmp 0x41e411
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
movzx edx, word [0x4238f8]
imul edx
movzx edx, word [0x4238f8]
add eax, edx
movzx edx, word [0x4238fe]
add eax, edx
mov edx, dword [0x423a1c]
movzx ecx, word [0x423c30]
shl ecx, 0xc
or ecx, 0x2000000
mov dword [edx + eax*4], ecx
jmp 0x41e411
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
movzx edx, word [0x4238f8]
imul edx
movzx edx, word [0x4238f8]
add eax, edx
movzx edx, word [0x4238fe]
add eax, edx
mov edx, dword [0x423a1c]
movzx ecx, word [0x423c30]
shl ecx, 0xc
movzx ebx, word [0x423c32]
or ecx, ebx
or ecx, 0x3000000
mov dword [edx + eax*4], ecx
jmp 0x41e411
mov al, byte [0x423c48]
or al, byte [0x423c49]
cmp al, 1
jne 0x41e3d5
mov eax, dword [0x423c38]
cmp eax, dword [0x423c3c]
jne 0x41e27c
mov eax, dword [0x423c40]
cmp eax, dword [0x423c44]
je 0x41e3bd
cmp byte [0x4238ef], 0
je 0x41e299
mov esi, 0x4202d8
mov edi, 0x423914
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x41e2a8
mov esi, 0x4202f0
mov edi, 0x423914
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [0x4238ed], 0
mov dword [ebp - 0x1c], 0x423c48
mov dword [ebp - 0x18], 0x4218a8
mov esi, 0x423a30
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 1
jne 0x41e331
lea eax, [ebp - 0x120]
mov edx, 0x423914
call fcn.00404618
push dword [ebp - 0x120]
lea eax, [ebp - 0x124]
mov edx, dword [ebp - 0x18]
call fcn.00404618
push dword [ebp - 0x124]
lea eax, [ebp - 0x128]
mov edx, esi
call fcn.00404618
push dword [ebp - 0x128]
push 0x420308
lea eax, [ebp - 0x11c]
mov edx, 4
call fcn.00404734
mov edx, dword [ebp - 0x11c]
mov eax, 0x423914
mov ecx, 0xff
call fcn.00404650
inc byte [0x4238ed]
add esi, 0x100
add dword [ebp - 0x18], 0x100
inc dword [ebp - 0x1c]
cmp byte [0x4238ed], 2
jne 0x41e2c2
lea eax, [ebp - 0x12c]
mov edx, 0x423914
call fcn.00404618
lea eax, [ebp - 0x12c]
mov edx, 0x4201e8
call fcn.0040467c
mov edx, dword [ebp - 0x12c]
mov eax, 0x423914
mov ecx, 0xff
call fcn.00404650
xor eax, eax
mov al, byte [0x423914]
push eax
lea eax, [ebp - 0x130]
mov edx, 0x423914
call fcn.00404618
mov eax, dword [ebp - 0x130]
mov ecx, 0x42390c
mov edx, 0x423904
call fcn.0041c490
mov byte [0x4238ef], 1
push 7
mov ecx, 0x42390c
mov edx, 0x423904
mov eax, 0x420314
call fcn.0041c490
jmp 0x41e411
cmp byte [0x4238ef], 0
je 0x41e3fb
push 7
mov ecx, 0x42390c
mov edx, 0x423904
mov eax, 0x420324
call fcn.0041c490
mov byte [0x4238ef], 0
push 7
mov ecx, 0x42390c
mov edx, 0x423904
mov eax, 0x420314
call fcn.0041c490
inc word [0x4238fe]
dec word [ebp - 0x14]
jne 0x41da75
cmp byte [0x4238ec], 0
jbe 0x41e457
mov eax, dword [0x4238e4]
mov edx, dword [eax]
call dword [edx + 0x2c]
movzx edx, word [0x4238f8]
inc edx
imul edx
movzx edx, word [0x4238f8]
add eax, edx
mov edx, dword [0x423a1c]
mov dword [edx + eax*4], 0x4000000
jmp 0x41e46d
push 4
mov ecx, 0x42390c
mov edx, 0x423904
mov eax, 0x420334
call fcn.0041c490
inc word [0x4238f8]
dec word [ebp - 0x12]
jne 0x41da1e
cmp byte [0x4238ec], 0
jbe 0x41e5cb
xor eax, eax
mov al, byte [0x4238ec]
mov ecx, 5
xor edx, edx
div ecx
mov word [0x423900], ax
mov eax, dword [0x421f40]
mov edx, 0x420344
call fcn.004049e4
call fcn.00403138
call fcn.00402b1c
cmp word [0x423900], 0
jne 0x41e50e
mov eax, 0x423908
mov edx, dword [0x423910]
call fcn.00404954
push dword [0x423908]
push 0x420370
push 0x41e7c8
lea eax, [ebp - 0x134]
mov edx, 3
call fcn.00404734
mov edx, dword [ebp - 0x134]
mov eax, dword [0x421f40]
call fcn.004049e4
call fcn.00403138
call fcn.00402b1c
push 0x42037c
lea eax, [ebp - 0x13c]
movzx edx, word [0x423900]
shl edx, 5
lea edx, [edx*8 + 0x421aa8]
call fcn.00404618
push dword [ebp - 0x13c]
push 0x420404
push 0x41e7c8
push 0x420424
lea eax, [ebp - 0x140]
movzx edx, word [0x423900]
shl edx, 5
lea edx, [edx*8 + 0x421aa8]
call fcn.00404618
push dword [ebp - 0x140]
push 0x420404
push 0x41e7c8
push 0x42046c
lea eax, [ebp - 0x144]
movzx edx, word [0x423900]
shl edx, 5
lea edx, [edx*8 + 0x421ca8]
call fcn.00404618
push dword [ebp - 0x144]
push 0x420404
lea eax, [ebp - 0x138]
mov edx, 0xb
call fcn.00404734
mov edx, dword [ebp - 0x138]
mov eax, dword [0x421f40]
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
call fcn.0041c50c
mov eax, 0x423904
mov edx, dword [0x42390c]
call fcn.00404954
mov eax, dword [0x421f40]
mov edx, dword [0x423904]
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
cmp byte [0x4238ec], 0
jbe 0x41e619
mov eax, dword [0x421f40]
mov edx, 0x4204a4
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
jmp 0x41e632
mov eax, dword [0x421f40]
mov edx, 0x420324
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
mov eax, dword [0x421f40]
mov edx, 0x4204b8
call fcn.004049e4
call fcn.004033c0
call fcn.00402b1c
mov eax, dword [0x4238e4]
call fcn.004038b0
mov eax, dword [0x421eb8]
xor edx, edx
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41e6cd
lea eax, [ebp - 0x144]
mov edx, 0x12
call fcn.004043d8
lea eax, [ebp - 0xf8]
mov edx, 3
call fcn.004043d8
lea eax, [ebp - 0xdc]
mov edx, 0xc
call fcn.004043d8
lea eax, [ebp - 0x88]
mov edx, 0xa
call fcn.004043d8
lea eax, [ebp - 0x4c]
mov edx, 3
call fcn.004043d8
lea eax, [ebp - 0x38]
mov edx, 6
call fcn.004043d8
ret