Function at 0x41e657
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a4
mov eax, dword [0x402310]
push ebx
push esi
push edi
mov dword [ebp - 0x7c], eax
xor ebx, ebx
mov ax, word [0x402314]
push 9
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0xab489988
mov word [ebp - 0x30], 0x300f
mov word [ebp - 0x78], ax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
pop edx
mov al, byte [0x44d69c]
mov ecx, 0x44d69c
jmp 0x41e6a9
sub al, 0x30
cmp al, dl
ja 0x41e738
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41e69c
mov eax, dword [0x44d6c8]
or eax, 0x42304139
mov dword [0x44d6c8], eax
call fcn.0041dd2c
mov ecx, dword [ebp - 8]
push 9
pop edx
mov byte [ebp + ecx - 0x190], cl
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x100
jb 0x41e690
mov al, byte [0x44d69c]
xor ebx, ebx
mov esi, dword [0x44d6c8]
mov edi, ebx
mov dword [ebp - 0x90], 5
mov byte [ebp - 0x59], al
xor edx, edx
mov cl, byte [ebp + edi - 0x190]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x90]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x7c]
add eax, dword [ebp - 0x14]
add ecx, eax
mov eax, ebx
mov ch, byte [ebp - 0x59]
movzx edx, cl
mov dword [ebp - 0x14], edx
test ch, ch
je 0x41e74d
inc eax
cmp eax, 0x1540
jg 0x41e747
cmp byte [eax + 0x44d69c], bl
jne 0x41e726
jmp 0x41e74d
mov eax, dword [0x44d6c8]
add eax, 0x2c2ffb6e
jmp 0x41e6b2
or esi, 0x96b1df21
mov al, byte [ebp + edx - 0x190]
xor esi, 0x61b0f856
mov byte [ebp + edi - 0x190], al
add esi, 0x5f17be41
mov al, byte [ebp - 1]
inc edi
mov byte [ebp + edx - 0x190], al
cmp edi, 0x100
jb 0x41e6f6
mov dword [ebp - 0x74], esi
mov edi, ebx
mov esi, ebx
lea eax, [ebx + 1]
movzx ebx, al
push 6
mov cl, byte [ebp + ebx - 0x190]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x190]
mov byte [ebp + ebx - 0x190], al
mov byte [ebp + esi - 0x190], cl
movzx eax, byte [ebp + ebx - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x34]
mov byte [ebp + edi - 0x198], al
inc edi
pop eax
cmp edi, eax
jb 0x41e785
push 0x16
pop edx
xor ebx, ebx
mov byte [ebp - 0xd], dl
imul eax, dword [ebp - 0x74], 0xd76236ab
mov edx, 0x44d69c
mov byte [ebp - 0x192], bl
mov word [ebp - 0x10], 0x50c6
mov byte [ebp - 0xe], 0xc1
mov byte [ebp - 0xc], 0x8c
jmp 0x41e80c
sub ch, 0x30
cmp ch, 9
ja 0x41e812
inc edx
mov ch, byte [edx]
test ch, ch
jne 0x41e801
jmp 0x41e817
or eax, 0x4d091f39
add eax, 0xeb1de96
mov dword [0x44d6c8], eax
call fcn.0041de60
mov esi, 0x402318
lea edi, [ebp - 0x70]
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41e835
mov esi, ebx
mov dl, byte [ebp + esi - 0x190]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x70]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], dl
cmp esi, 0x100
jb 0x41e846
mov eax, dword [0x44d6c8]
mov edi, ebx
add eax, 0x30db0b6e
mov esi, ebx
mov dword [ebp - 0x14], eax
lea eax, [edi + 1]
movzx edi, al
push 5
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x10]
mov byte [ebp + esi - 0x84], al
inc esi
pop eax
cmp esi, eax
jb 0x41e890
mov esi, 0x402324
mov word [ebp - 0x34], 0x80a5
lea edi, [ebp - 0x8c]
mov word [ebp - 0x30], 0x7658
push 0xe
pop eax
movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov byte [ebp - 0x32], al
push 9
pop eax
movsw word es:[edi], word [esi]
mov byte [ebp - 0x31], al
mov eax, ebx
mov byte [ebp - 0x7f], bl
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41e912
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 6
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41e923
and dword [ebp - 0x14], 0xee8f7695
xor ebx, ebx
mov esi, ebx
mov edi, ebx
lea eax, [esi + 1]
movzx esi, al
push 6
mov cl, byte [ebp + esi - 0x190]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + esi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + esi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x34]
mov byte [ebp + edi - 0x1a0], al
inc edi
pop eax
cmp edi, eax
jb 0x41e970
mov esi, dword [ebp - 0x14]
xor ebx, ebx
mov byte [ebp - 0x19a], bl
mov eax, ebx
inc eax
cmp eax, 0x1c17
jg 0x41e9ee
cmp byte [eax + 0x4023e0], bl
jne 0x41e9cf
cmp eax, 0x3a5
jg 0x41e9f4
imul esi, esi, 0x158a68cb
jmp 0x41e9fa
or esi, 0x841d96d2
or esi, 0x5f1043b0
mov dword [ebp - 0x14], esi
push 5
pop eax
mov ecx, eax
mov dword [ebp - 0x34], 0x94837581
mov eax, dword [ebp - 0x14]
lea edi, [ebp - 0x54]
mov esi, 0x40232c
mov word [ebp - 0x30], 0x6bf4
and eax, 0x12250103
rep movsd dword es:[edi], dword [esi]
mov dword [0x44d6c8], eax
mov edi, ebx
mov eax, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41ea2a
push 0x13
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
mov eax, esi
div ecx
movzx ecx, bl
push 0x13
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41ea3e
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x1a8], al
inc esi
pop eax
cmp esi, eax
jb 0x41ea81
mov esi, 0x401714
mov dword [ebp - 0x10], 0xc75d6f5e
lea edi, [ebp - 0x4c]
mov byte [ebp - 0xc], 0xa6
xor ebx, ebx
push 0x27a
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x1a2], bl
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [sym.imp.USER32.dll_GetLastActivePopup]
or eax, 0x254ded5b
mov ecx, ebx
mov dword [ebp - 0x14], eax
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x41eb06
mov esi, ebx
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 0xb
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x4c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41eb1a
mov edi, dword [ebp - 0x14]
xor ebx, ebx
mov eax, 0x4023e0
mov dword [ebp - 8], ebx
mov esi, ebx
mov dword [ebp - 0x74], eax
push 9
mov ecx, eax
mov al, 0x48
pop edx
sub al, 0x30
cmp al, dl
ja 0x41eb7f
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41eb70
jmp 0x41eb85
sub edi, 0x2ee19b21
xor edi, 0xb9cab386
mov dword [0x44d6c8], edi
call dword [sym.imp.USER32.dll_GetDialogBaseUnits]
call fcn.0041dd2c
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 8]
push 5
mov cl, byte [ebp + ebx - 0x190]
movzx edx, cl
add eax, edx
movzx edi, al
mov dword [ebp - 8], edi
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + ebx - 0x190], al
mov byte [ebp + edi - 0x190], cl
movzx eax, byte [ebp + ebx - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x10]
mov byte [ebp + esi - 0x64], al
inc esi
pop eax
cmp esi, eax
jae 0x41ec00
mov edi, dword [0x44d6c8]
mov eax, 0x4023e0
jmp 0x41eb69
mov esi, 0x402340
mov dword [ebp - 0x14], 0xd9e5ede
lea edi, [ebp - 0x4c]
xor ebx, ebx
mov byte [ebp - 0x5f], bl
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41ec1b
mov esi, dword [0x44d6c8]
mov edi, ebx
mov dword [ebp - 0x3c], 0x4023b4
xor edx, edx
mov dword [ebp - 8], 0xa
mov eax, edi
mov cl, byte [ebp + edi - 0x190]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
push 0x73
movzx eax, byte [ebp + edx - 0x4c]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov ecx, 0x4023b4
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x41ec82
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x41ec68
jmp 0x41ec88
and esi, 0x40af8c04
xor esi, 0x633a7f62
call fcn.0041dfa5
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ebx - 0x190], al
cmp edi, 0x100
jb 0x41ec39
xor ebx, ebx
mov dword [ebp - 8], ebx
mov edi, ebx
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 8]
push 0x73
mov cl, byte [ebp + ebx - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + ebx - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
mov ecx, 0x4023b4
movzx eax, byte [ebp + ebx - 0x190]
add eax, edx
movzx eax, al
pop edx
mov al, byte [ebp + eax - 0x190]
mov byte [ebp - 1], al
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x41ed27
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x41ed0d
jmp 0x41ed2d
sub esi, 0x5f3868e2
or esi, 0x8d1ee0d6
mov dword [0x44d6c8], esi
call fcn.0041dfa5
mov al, byte [ebp + edi - 0x14]
xor al, byte [ebp - 1]
mov byte [ebp + edi - 0x7c], al
inc edi
cmp edi, 4
jb 0x41ecbb
mov dword [ebp - 0x10], esi
lea edi, [ebp - 0x8c]
mov esi, 0x401dfc
mov dword [ebp - 0x34], 0x3cddb7f7
xor ebx, ebx
mov word [ebp - 0x30], 0xc511
push 0x48
mov byte [ebp - 0x78], bl
mov edx, 0xd55
movsd dword es:[edi], dword [esi]
mov eax, 0x4023e0
pop ecx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
add edx, ecx
inc eax
cmp edx, 0x426
ja 0x41ed9b
movsx ecx, byte [eax]
test ecx, ecx
jne 0x41ed84
mov eax, dword [ebp - 0x10]
jmp 0x41edaa
call fcn.0041dd2c
mov eax, dword [0x44d6c8]
and eax, 0xa4f8f9cd
imul eax, eax, 0x230cbc6a
mov edi, 0x397b80df
sub edi, eax
mov dword [ebp - 0x10], edi
call fcn.0041dfa5
mov eax, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41edc1
mov esi, ebx
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 6
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41edd4
imul eax, dword [ebp - 0x10], 0x2ca44254
xor ebx, ebx
mov edi, ebx
mov esi, ebx
mov dword [ebp - 8], eax
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
pop ecx
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x8c], al
inc esi
cmp esi, ecx
jb 0x41ee24
mov eax, dword [ebp - 8]
lea edi, [ebp - 0x1c4]
mov esi, 0x401f54
mov dword [ebp - 0x14], 0x8278416d
rep movsd dword es:[edi], dword [esi]
or eax, 0xfeef4434
xor ebx, ebx
mov byte [ebp - 0x86], bl
mov dword [ebp - 8], ebx
movsw word es:[edi], word [esi]
push 0x73
mov esi, 0x30a
mov ecx, 0x4023b4
pop edx
add esi, edx
lea ecx, [ecx + 2]
cmp esi, 0x1717
ja 0x41eec2
movzx edx, word [ecx]
test edx, edx
jne 0x41eeac
jmp 0x41eec7
sub eax, 0x84eaad7
imul eax, eax, 0x7b79c3a2
mov ecx, 0xa3aba01e
sub ecx, eax
mov dword [0x44d6c8], ecx
call fcn.0041dd2c
mov ecx, dword [ebp - 8]
mov byte [ebp + ecx - 0x190], cl
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x100
jae 0x41eefc
mov eax, dword [0x44d6c8]
jmp 0x41ee9f
xor ebx, ebx
push 0x19
mov esi, ebx
mov edi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
mov eax, esi
div ecx
movzx ecx, bl
push 0x19
movzx eax, byte [ebp + edx - 0x1c4]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41ef05
mov esi, dword [0x44d6c8]
xor ebx, ebx
mov edi, ebx
mov edx, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x190]
movzx eax, cl
mov dword [ebp - 0x10], eax
add eax, ebx
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov al, byte [0x44d69c]
mov byte [ebp + ebx - 0x190], cl
mov ecx, 0x44d69c
jmp 0x41ef93
sub al, 0x30
cmp al, 9
ja 0x41ef99
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41ef8a
jmp 0x41ef9f
and esi, 0xabff28b
movzx eax, byte [ebp + edi - 0x190]
add eax, dword [ebp - 0x10]
movzx eax, al
imul esi, esi, 0x115e7c4
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edx - 0x14]
and esi, 0x97161d8
mov byte [ebp + edx - 0x34], al
inc edx
cmp edx, 4
jb 0x41ef51
xor ebx, ebx
mov dword [0x44d6c8], esi
mov byte [ebp - 0x30], bl
cmp dword [0x44eed4], ebx
jne 0x41eff1
call fcn.0041e4fd
mov esi, dword [0x44d6c8]
mov dword [0x44eed4], eax
cmp dword [0x44eec8], ebx
jne 0x41f00e
mov edx, 0x73f5352e
call fcn.0041e135
mov esi, dword [0x44d6c8]
mov dword [0x44eec8], eax
cmp dword [0x44eed8], ebx
jne 0x41f02b
mov edx, 0xed86d0ea
call fcn.0041e135
mov esi, dword [0x44d6c8]
mov dword [0x44eed8], eax
cmp dword [0x44eed0], ebx
jne 0x41f1b2
push 0x48
mov dword [ebp - 0x70], 0xe0fe40b0
mov edx, 0xe80
mov dword [ebp - 0x6c], 0x1ffbc1a5
mov eax, 0x4023e0
mov byte [ebp - 0x68], 0x9c
pop ecx
add edx, ecx
inc eax
cmp edx, 0x2d7
ja 0x41f06a
movsx ecx, byte [eax]
test ecx, ecx
jne 0x41f056
jmp 0x41f075
call fcn.0041dfa5
xor esi, 0x1809214a
imul eax, esi, 0xcb9a5aa2
lea edi, [ebp - 0x50]
mov esi, 0x401628
movsd dword es:[edi], dword [esi]
xor eax, 0x8e4299b
mov dword [ebp - 0x10], eax
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f095
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x50]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41f0a6
mov edx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov al, byte [ebp + edi - 0x190]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 8], eax
add eax, ecx
movzx eax, al
mov ecx, 0x44d69c
mov dword [ebp - 0x10], eax
mov al, byte [0x44d69c]
test al, al
je 0x41f132
push 9
pop ebx
sub al, 0x30
cmp al, bl
ja 0x41f12c
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41f11d
jmp 0x41f132
and edx, 0xc74b4eb
sub edx, 0x6810ab3b
mov dword [0x44d6c8], edx
call fcn.0041de60
mov ecx, dword [ebp - 0x10]
push 9
mov al, byte [ebp + ecx - 0x190]
mov byte [ebp + edi - 0x190], al
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x190], al
movzx eax, byte [ebp + edi - 0x190]
add eax, dword [ebp - 8]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x70]
mov byte [ebp + esi - 0x4c], al
inc esi
pop eax
cmp esi, eax
jae 0x41f18e
mov edx, dword [0x44d6c8]
jmp 0x41f0ee
and dword [0x44d6c8], 0x4f6a82ec
lea eax, [ebp - 0x4c]
push eax
push dword [0x44eed4]
xor ebx, ebx
mov byte [ebp - 0x43], bl
call dword [0x44eec8]
mov dword [0x44eed0], eax
cmp dword [0x44eecc], 0
jne 0x41f1ca
mov edx, 0xc280bf30
call fcn.0041e135
mov dword [0x44eecc], eax
mov esi, dword [ebp - 0x38]
lea edx, [ebp - 0x198]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41f3b4
push 0x48
mov ecx, 0xb77
mov eax, 0x4023e0
pop edx
add ecx, edx
inc eax
cmp ecx, 0xca6
ja 0x41f208
movsx edx, byte [eax]
test edx, edx
jne 0x41f1ef
mov eax, dword [0x44d6c8]
jmp 0x41f212
mov eax, dword [0x44d6c8]
xor eax, 0x4c2090d8
and eax, 0xdabdfc76
add eax, 0x476e3b57
mov dword [0x44d6c8], eax
call fcn.0041dd2c
mov eax, dword [0x401a04]
mov edi, ebx
mov dword [ebp - 0x34], eax
mov ax, word [0x401a08]
mov word [ebp - 0x30], ax
mov eax, ebx
mov dword [ebp - 0x58], 0xbabf91ab
mov dword [ebp - 0x54], 0xa2dfbb7b
mov dword [ebp - 0x50], 0xdbf6eab
mov dword [ebp - 0x4c], 0x84a068fc
mov dword [ebp - 0x48], 0xb5ea9bcc
mov dword [ebp - 0x44], 0xaafddcb5
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f266
mov esi, ebx
xor edx, edx
mov cl, byte [ebp + esi - 0x190]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x90]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
mov eax, 0x4023b4
movzx edi, cl
mov ecx, ebx
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1597
je 0x41f2b9
cmp word [eax], bx
jne 0x41f2a1
mov eax, dword [0x44d6c8]
jmp 0x41f2c8
call fcn.0041de60
imul eax, dword [0x44d6c8], 0x1be05cdb
and eax, 0x14d7d1bd
add eax, 0x2720c39e
mov dword [0x44d6c8], eax
call fcn.0041de60
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x190], al
cmp esi, 0x100
jb 0x41f277
mov ecx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
push 9
pop edx
mov al, byte [ebp + edi - 0x190]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x10], eax
add eax, ecx
movzx eax, al
mov ecx, 0x4023e0
mov dword [ebp - 0x38], eax
mov al, 0x48
sub al, 0x30
cmp al, dl
ja 0x41f343
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41f32f
mov eax, dword [0x44d6c8]
jmp 0x41f34d
mov eax, dword [0x44d6c8]
or eax, 0xd7209b98
and eax, 0x70c72b1b
mov dword [0x44d6c8], eax
call fcn.0041de60
mov ecx, dword [ebp - 0x38]
mov al, byte [ebp + ecx - 0x190]
mov byte [ebp + edi - 0x190], al
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x190], al
movzx eax, byte [ebp + edi - 0x190]
add eax, dword [ebp - 0x10]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x58]
mov byte [ebp + esi - 0x1e0], al
inc esi
cmp esi, 0x18
jb 0x41f307
xor ebx, ebx
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 0x1c8], bl
jmp 0x41fe1a
lea edx, [ebp - 0x84]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41f583
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0x58], 0x894e4b34
mov esi, 0x401f54
mov dword [ebp - 0x54], 0xf7b0db40
lea edi, [ebp - 0x1c4]
mov dword [ebp - 0x50], 0x79a46992
rep movsd dword es:[edi], dword [esi]
push 0x48
mov dword [ebp - 0x4c], 0x22447e4e
mov dword [ebp - 0x48], 0xafc420a8
mov dword [ebp - 0x44], 0x4efd944e
movsw word es:[edi], word [esi]
pop ecx
push 9
sub cl, 0x30
pop eax
cmp cl, al
ja 0x41f42a
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x41f40a
mov eax, dword [0x44d6c8]
jmp 0x41f434
mov eax, dword [0x44d6c8]
xor eax, 0x17f17b6
imul eax, eax, 0xac36550b
mov dword [0x44d6c8], eax
call fcn.0041dd2c
mov esi, dword [0x44d6c8]
mov eax, ebx
or esi, 0x1cb8f0fb
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x10], esi
mov dword [0x44d6c8], esi
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f45e
mov esi, dword [ebp - 0x38]
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x190]
push 0x19
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1c4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov byte [ebp + esi - 0x190], bl
cmp edi, 0x100
jb 0x41f472
mov esi, dword [ebp - 0x10]
xor ebx, ebx
mov edx, ebx
mov ecx, ebx
mov edi, ebx
lea eax, [ecx + 1]
mov dword [ebp - 8], 0x1c50
movzx ecx, al
push 0x73
mov dword [ebp - 0x38], ecx
pop ebx
mov al, byte [ebp + ecx - 0x190]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x3c], eax
add eax, edx
movzx edx, al
mov dword [ebp - 0x10], edx
mov al, byte [ebp + edx - 0x190]
mov byte [ebp + ecx - 0x190], al
mov eax, 0x4023b4
add dword [ebp - 8], ebx
lea eax, [eax + 2]
cmp dword [ebp - 8], 0xa2c
ja 0x41f513
movzx ebx, word [eax]
test ebx, ebx
jne 0x41f4fb
jmp 0x41f52a
call fcn.0041dd2c
mov esi, dword [0x44d6c8]
mov ecx, dword [ebp - 0x38]
and esi, 0x1ed27153
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 1]
or esi, 0xdab2fa9d
mov byte [ebp + edx - 0x190], al
sub esi, 0x778346b0
movzx eax, byte [ebp + ecx - 0x190]
add eax, dword [ebp - 0x3c]
movzx eax, al
mov dword [0x44d6c8], esi
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x58]
mov byte [ebp + edi - 0x1fc], al
inc edi
cmp edi, 0x18
jb 0x41f4bd
xor ebx, ebx
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 0x1e4], bl
jmp 0x41fe1a
lea edx, [ebp - 0x1a0]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41f774
push 5
pop eax
mov ecx, eax
mov dword [ebp - 0x2c], 0xc3893eba
mov esi, 0x401f70
mov dword [ebp - 0x28], 0x7cc3e087
lea edi, [ebp - 0x54]
mov dword [ebp - 0x24], 0xb394b5aa
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], 0x43838004
mov edi, ebx
mov dword [ebp - 0x1c], 0x28f4f2e6
mov eax, ebx
mov dword [ebp - 0x18], 0xfa071233
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f5d5
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 0x13
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41f5e6
mov al, byte [0x44d69c]
mov ecx, 0x44d69c
test al, al
je 0x41f641
push 9
pop edx
sub al, 0x30
cmp al, dl
ja 0x41f67a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41f634
mov eax, dword [0x44d6c8]
xor eax, 0x20483449
mov dword [0x44d6c8], eax
call fcn.0041dd2c
xor ebx, ebx
mov dword [ebp - 8], ebx
mov ecx, ebx
mov edi, ebx
lea eax, [ecx + 1]
mov esi, 0x19f
movzx ecx, al
mov edx, 0x44d69c
movzx eax, byte [0x44d69c]
mov dword [ebp - 0x38], ecx
jmp 0x41f694
mov eax, dword [0x44d6c8]
sub eax, 0x150dfe22
jmp 0x41f646
add esi, eax
inc edx
cmp esi, 0xdd2
ja 0x41f6e9
movzx eax, byte [edx]
test eax, eax
jne 0x41f686
mov esi, dword [0x44d6c8]
mov al, byte [ebp + ecx - 0x190]
or esi, 0xd6ecedff
movzx edx, al
mov byte [ebp - 1], al
mov eax, dword [ebp - 8]
add eax, edx
mov dword [ebp - 0x10], edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + ecx - 0x190], al
mov eax, ebx
cmp byte [0x44d69c], al
je 0x41f702
inc eax
cmp eax, 0x461
je 0x41f6f7
cmp byte [eax + 0x44d69c], bl
jne 0x41f6d7
jmp 0x41f702
mov esi, dword [0x44d6c8]
sub esi, 0x537611e7
jmp 0x41f69e
call fcn.0041dfa5
sub esi, 0x5cd9092d
and esi, 0xd8cd4532
mov dword [0x44d6c8], esi
call dword [sym.imp.USER32.dll_GetMessageExtraInfo]
sub dword [0x44d6c8], 0x787ec19b
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call fcn.0041de60
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 1]
mov byte [ebp + eax - 0x190], cl
mov ecx, dword [ebp - 0x38]
movzx eax, byte [ebp + ecx - 0x190]
add eax, dword [ebp - 0x10]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x2c]
mov byte [ebp + edi - 0x218], al
inc edi
cmp edi, 0x18
jb 0x41f65e
mov byte [ebp - 0x200], bl
lea ecx, [ebp - 0x218]
jmp 0x41fe1a
lea edx, [ebp - 0x1a8]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41f890
mov eax, dword [0x401ea8]
mov edi, ebx
mov dword [ebp - 0x84], eax
mov ax, word [0x401eac]
mov word [ebp - 0x80], ax
mov eax, ebx
mov dword [ebp - 0x2c], 0x34427f1c
mov dword [ebp - 0x28], 0xbe115bb0
mov dword [ebp - 0x24], 0x97a34d21
mov dword [ebp - 0x20], 0xe5b7ed4a
mov dword [ebp - 0x1c], 0xbb143047
mov dword [ebp - 0x18], 0xada196bb
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f7cc
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 5
mov eax, esi
sub dword [0x44d6c8], 0x46d84ed0
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x84]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41f7dd
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x234], al
inc esi
cmp esi, 0x18
jb 0x41f82d
xor ebx, ebx
lea ecx, [ebp - 0x234]
mov byte [ebp - 0x21c], bl
jmp 0x41fe1a
lea edx, [ebp - 0x64]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41f9a2
push 0x19
pop eax
mov byte [ebp - 0x28], al
mov edi, ebx
mov eax, dword [0x401b00]
mov dword [ebp - 0x64], eax
mov ax, word [0x401b04]
mov word [ebp - 0x60], ax
mov eax, ebx
mov dword [ebp - 0x2c], 0x8ac86b68
mov dword [ebp - 0x27], 0x7f867d8d
mov dword [ebp - 0x23], 0x6265f714
mov dword [ebp - 0x1f], 0xf7a31c22
mov dword [ebp - 0x1b], 0xd951b042
mov word [ebp - 0x17], 0x9dd3
mov byte [ebp - 0x15], 0x27
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f8eb
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x64]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41f8fc
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x250], al
inc esi
cmp esi, 0x18
jb 0x41f93f
xor ebx, ebx
lea ecx, [ebp - 0x250]
mov byte [ebp - 0x238], bl
jmp 0x41fe1a
lea edx, [ebp - 0x7c]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41fb60
push 5
pop eax
mov ecx, eax
mov byte [ebp - 0x29], al
mov esi, 0x401de4
mov word [ebp - 0x2c], 0x566a
lea edi, [ebp - 0x58]
mov byte [ebp - 0x2a], 0xb7
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x28], 0xfe944ad3
mov eax, ebx
mov dword [ebp - 0x24], 0xb9362c5f
mov dword [ebp - 0x20], 0x5ebcc416
movsw word es:[edi], word [esi]
mov dword [ebp - 0x1c], 0xed88f121
mov dword [ebp - 0x18], 0xfab6e857
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41f9fa
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 0x16
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41fa0b
push 0x73
pop ecx
lea eax, [ecx - 0x30]
push 9
pop ecx
cmp ax, cx
ja 0x41fa70
mov eax, dword [ebp - 0x3c]
add eax, 2
mov dword [ebp - 0x3c], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x41fa4b
mov eax, dword [0x44d6c8]
jmp 0x41fa7a
mov eax, dword [0x44d6c8]
and eax, 0x3145e008
or eax, 0x69a494b1
mov dword [0x44d6c8], eax
call fcn.0041de60
mov esi, dword [0x44d6c8]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov eax, ebx
mov edi, ebx
inc eax
movzx eax, al
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x14]
mov cl, byte [ebp + eax - 0x190]
mov eax, dword [ebp - 8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + ebx - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
mov eax, ebx
movzx eax, byte [ebp + eax - 0x190]
add eax, edx
xor ebx, ebx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
mov byte [ebp - 1], al
mov eax, ebx
inc eax
cmp eax, 0x1ffb
jg 0x41fb0b
cmp byte [eax + 0x4023e0], bl
jne 0x41faec
cmp eax, 0x15e7
jg 0x41fb17
imul esi, esi, 0x96f0bf0b
jmp 0x41fb28
sub esi, 0x2ea63cfb
mov dword [0x44d6c8], esi
call fcn.0041dd2c
mov esi, dword [0x44d6c8]
and esi, 0x49648fdc
mov al, byte [ebp + edi - 0x2c]
xor esi, 0x73432a23
xor al, byte [ebp - 1]
mov byte [ebp + edi - 0x26c], al
inc edi
mov eax, dword [ebp - 0x14]
mov dword [0x44d6c8], esi
cmp edi, 0x18
jb 0x41fa98
mov byte [ebp - 0x254], bl
lea ecx, [ebp - 0x26c]
jmp 0x41fe1a
lea edx, [ebp - 0x8c]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41fd16
push 0x48
mov ecx, 0x1c83
mov eax, 0x4023e0
pop edx
add ecx, edx
inc eax
cmp ecx, 0x1e44
ja 0x41fb9c
movsx edx, byte [eax]
test edx, edx
jne 0x41fb82
mov esi, dword [0x44d6c8]
jmp 0x41fbb0
call fcn.0041de60
imul esi, dword [0x44d6c8], 0x5bae2b67
call fcn.0041dfa5
sub esi, 0x71294bf3
mov dword [0x44d6c8], esi
push esi
call dword [sym.imp.USER32.dll_IsWindow]
or eax, 0xbffcfc7b
mov dword [0x44d6c8], eax
call fcn.0041dd2c
push 0xd
pop ecx
mov esi, 0x40234c
mov dword [ebp - 0x2c], 0x8e33a727
lea edi, [ebp - 0x2a4]
mov dword [ebp - 0x28], 0x55f8b3af
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x24], 0xbd52eda1
mov eax, ebx
mov dword [ebp - 0x20], 0xbde1c8a0
mov dword [ebp - 0x1c], 0xd4d103ce
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x18], 0x971ab6e0
mov edi, ebx
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41fc11
push 0x34
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
mov eax, esi
div ecx
movzx ecx, bl
push 0x34
movzx eax, byte [ebp + edx - 0x2a4]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41fc25
xor ebx, ebx
push 9
mov edx, ebx
mov edi, ebx
mov esi, ebx
pop ebx
mov ecx, dword [0x44d6c8]
lea eax, [edi + 1]
movzx edi, al
or ecx, 0xc1fc0b37
mov al, byte [ebp + edi - 0x190]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x10], eax
add eax, edx
movzx eax, al
mov edx, 0x4023e0
mov dword [ebp - 0x38], eax
mov al, 0x48
sub al, 0x30
cmp al, bl
ja 0x41fcb0
inc edx
mov al, byte [edx]
test al, al
jne 0x41fca1
jmp 0x41fcb6
xor ecx, 0xf1a78bbe
xor ecx, 0xe1319745
mov dword [0x44d6c8], ecx
call fcn.0041de60
mov edx, dword [ebp - 0x38]
mov al, byte [ebp + edx - 0x190]
mov byte [ebp + edi - 0x190], al
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x190], al
movzx eax, byte [ebp + edi - 0x190]
add eax, dword [ebp - 0x10]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x58], al
inc esi
cmp esi, 0x18
jb 0x41fc70
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x40], bl
jmp 0x41fe1a
lea edx, [ebp - 0x34]
mov ecx, esi
call fcn.00436c9e
test eax, eax
jne 0x41fe8a
mov eax, dword [0x4015c8]
mov edi, ebx
mov dword [ebp - 0x64], eax
mov ax, word [0x4015cc]
mov word [ebp - 0x60], ax
mov eax, ebx
mov dword [ebp - 0x2c], 0x7a384d93
mov dword [ebp - 0x28], 0x71d9ccd4
mov dword [ebp - 0x24], 0x3a5f6190
mov dword [ebp - 0x20], 0x90cb57d2
mov dword [ebp - 0x1c], 0xea22b2ce
mov dword [ebp - 0x18], 0x4e620f60
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0x41fd68
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x64]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0x41fd79
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x1c4], al
inc esi
cmp esi, 0x18
jb 0x41fdbc
xor ebx, ebx
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 0x1ac], bl
call fcn.0043617c
mov edi, eax
mov ecx, 0xb3a
movzx eax, byte [0x44d69c]
test eax, eax
je 0x41fe48
mov edx, 0x44d69c
add ecx, eax
inc edx
cmp ecx, 0x14ee
ja 0x41fe73
movzx eax, byte [edx]
test eax, eax
jne 0x41fe36
mov eax, dword [0x44d6c8]
or eax, 0x2d2b9da6
xor eax, 0x11f78e1f
push edi
mov dword [0x44d6c8], eax
call dword [0x44eed8]
mov ecx, edi
mov esi, eax
call fcn.0041e600
mov eax, esi
jmp 0x41ff00
call fcn.0041dd2c
mov eax, dword [0x44d6c8]
and eax, 0x5525fbaf
imul eax, eax, 0x2aa03443
jmp 0x41fe52
cmp byte [0x44d69c], 0
je 0x41fea5
inc ebx
cmp ebx, 0x17e5
jg 0x41ff05
cmp byte [ebx + 0x44d69c], 0
jne 0x41fe93
mov eax, dword [0x44d6c8]
mov dword [ebp - 0x50], 0x52
xorps xmm1, xmm1
mov dword [ebp - 0x4c], 0x42
mov ecx, 0xf082dbc8
mov dword [ebp - 0x48], 0x5d
mov dword [ebp - 0x44], 0xffffff0f
movups xmm0, xmmword [ebp - 0x50]
imul eax, eax, 0x24ec7f7d
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
sub ecx, eax
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [0x44d6c8], ecx
movd eax, xmm1
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [0x44d6c8]
sub eax, 0x65e106ba
jmp 0x41feaa