Function at 0x401666
Capabilities:
Authenticate hmac
Create thread
Encrypt data using speck
Parse credit card information
Parse pe header
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
mov ebx, dword [ebp + 0x10]
mov eax, ebx
xor edx, edx
mov ecx, 0x19a
push esi
div ecx
mov eax, ebx
push edi
and eax, 0x15e
mov edi, edx
mov edx, dword [ebp + 0x14]
or edi, eax
cmp edx, 0x64
mov dword [ebp - 0xc], edi
je 0x401819
cmp edx, 0x58aa
jne 0x4016a9
mov eax, 0x444184
mov dword [ebp - 0x10], eax
jmp 0x4016d4
cmp edx, 0x46
jne 0x4016b9
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov edx, dword [ebp + 0x14]
jmp 0x4016d4
cmp edx, 0x24
jne 0x4016cb
mov edi, ebx
xor edi, 0x260
mov dword [ebp - 0xc], edi
jmp 0x4016d4
cmp edx, 0x4c
jb 0x4020d5
lea ecx, [ebx - 0x293]
cmp ecx, 0x15
mov dword [ebp - 0x14], ecx
jne 0x4016f0
mov edi, dword [ebp + 0xc]
and edi, 0x209
mov dword [ebp - 0xc], edi
jmp 0x40176d
cmp ecx, 0x1a
je 0x40176d
cmp ecx, 0x57
jb 0x402042
cmp ecx, 0x35
jb 0x40176d
cmp ecx, 3
jne 0x40171e
mov eax, edx
xor edx, edx
mov ecx, 0x369
div ecx
lea ecx, [eax + eax*2]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0x14]
jmp 0x40176d
cmp ecx, 0x8b57
jne 0x40176d
cmp ebx, 0x8dea
jne 0x40173d
mov eax, dword [ebp - 0x10]
lea eax, [eax + edx - 0x522e]
mov dword [ebp - 0x10], eax
jmp 0x40176d
cmp ebx, 0x45
jae 0x401755
movzx eax, di
xor edx, edx
mov esi, 0x3cb
div esi
sub edi, edx
mov dword [ebp - 0xc], edi
jmp 0x401719
cmp ebx, 0x60
jne 0x40176d
movzx eax, di
mov ecx, 0x1173957
sub ecx, eax
xor ecx, 0x326
mov dword [ebp - 0x14], ecx
movzx eax, di
lea esi, [eax + eax*8]
shl esi, 3
sub ecx, esi
mov esi, dword [ebp - 0x10]
or cx, 0x210
cmp dword [ebp + 8], 0x5b
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], esi
jae 0x401797
mov ecx, dword [ebp + 0xc]
or ecx, 0x50
mov dword [ebp - 8], ecx
jmp 0x4017b8
cmp dword [ebp + 8], 0x23
jb 0x4017b8
cmp dword [ebp + 8], 0xeb79
jne 0x4017b8
add edx, 0xffffa756
imul edx, edx, 0x374
mov esi, dword [edx + esi]
mov dword [ebp - 0x1c], esi
xor edx, edx
mov ecx, 0x1b5
div ecx
mov ecx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp + 0x14]
imul eax, eax, 0x365
add ebx, eax
cmp ecx, 0x3e
ja 0x4017e8
mov eax, dword [ebp + 0x14]
mov edi, eax
shl edi, 3
or di, 0x372
mov dword [ebp - 0xc], edi
jmp 0x40183a
cmp ecx, 0x5e
jae 0x4017f8
lea eax, [ecx + 0x2b4]
mov dword [ebp - 0x14], eax
jmp 0x40183a
cmp ecx, 0xeb79
jne 0x401814
mov eax, dword [ebp + 0x14]
xor eax, 0x185
lea eax, [eax + esi - 0x5407]
mov dword [ebp - 0x5c], eax
jmp 0x40183a
cmp ecx, 0x38
jae 0x401820
mov al, bl
jmp 0x402205
cmp ecx, 0x5e
ja 0x40183a
mov eax, 0x3c6
xor edx, edx
div dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov edi, edx
or edi, dword [ebp + 0x10]
mov dword [ebp - 0xc], edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], esi
cmp eax, 0x4d
jbe 0x4018a7
cmp eax, 0x36
jb 0x4020ff
cmp eax, 0xd825
jne 0x401861
mov dword [ebp - 0x38], 0x2b75c
jmp 0x4018e5
cmp eax, 0x5f
jae 0x4018a7
movzx ecx, di
mov eax, 0x119
xor edx, edx
div ecx
movzx esi, bx
mov eax, 0x159
sub ecx, edx
xor edx, edx
div esi
mov eax, dword [ebp + 8]
and ecx, 0x3e0
add eax, 0xfffffffd
push ecx
and eax, 0x131
sub edx, 0x32b
push edx
push eax
push dword [ebp + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFileEx]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, 0x25
ja 0x4018c8
mov eax, dword [ebp - 0x14]
xor edx, edx
mov esi, 0xfd
div esi
xor edx, dword [ebp + 0x10]
or dx, 0x147
mov dword [ebp - 8], edx
jmp 0x401905
cmp eax, 0x2c
jae 0x4018d4
or di, 0x1dc
jmp 0x401902
cmp eax, 0x3d
jae 0x4018de
lea edi, [ecx + 4]
jmp 0x401902
cmp eax, 0xd825
jne 0x4018ef
mov eax, 0x43edb6
mov dword [ebp - 0x10], eax
jmp 0x401905
cmp eax, 0x40
ja 0x401905
movzx eax, bx
xor edx, edx
mov esi, 0xb3
div esi
mov edi, eax
mov dword [ebp - 0xc], edi
mov eax, dword [ebp + 0x14]
cmp eax, 0x53
jae 0x40191b
mov edi, dword [ebp + 0xc]
imul edi, edi, 0x3b9
mov dword [ebp - 0xc], edi
jmp 0x401956
cmp eax, 0x58aa
jne 0x401934
imul ecx, dword [ebp + 0xc]
add ecx, 0xc02b391
imul ecx, ecx, 0x11
add dword [ebp - 0x10], ecx
jmp 0x401956
cmp eax, 0xd
jbe 0x401956
cmp eax, 0x2d
jae 0x401956
mov eax, dword [ebp + 0x10]
xor edx, edx
imul eax, dword [ebp + 0x14]
mov ecx, 0x10d
div ecx
mov ebx, eax
and ebx, 0x14b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
imul eax, eax, 0x157
xor eax, ecx
xor eax, 0x2fa
cmp ecx, 0x5a
jb 0x402205
mov esi, dword [sym.imp.KERNEL32.dll_SetStdHandle]
cmp ecx, 0x21
jne 0x401996
movzx eax, ax
sub eax, dword [ebp + 0x14]
movzx ecx, bx
or cx, 0x3b5
sub eax, 0x3dc
push ecx
push eax
call esi
jmp 0x4019e9
cmp ecx, 0x44
jae 0x4019a7
mov ebx, dword [ebp - 8]
and ebx, edi
or bx, 0x2f8
jmp 0x4019e9
cmp ecx, 0x62
jb 0x40213f
cmp ecx, 0x8b57
jne 0x4019d9
mov ecx, dword [ebp + 0xc]
mov eax, edi
imul ecx, ecx, 0x360
and eax, 0x23a
xor eax, ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + eax*4 - 0xb65f368]
mov dword [ebp - 0x54], eax
jmp 0x4019e9
cmp ecx, 0x53
jae 0x4019e9
mov ecx, dword [ebp - 8]
add eax, ecx
and eax, 0x69
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
add eax, 0x14
xor eax, 0x2e2
cmp dword [ebp + 0x14], 0x4b
mov dword [ebp - 0x20], eax
jae 0x401a15
mov eax, dword [ebp + 0x14]
xor edx, edx
imul eax, eax, 0x32b
div dword [ebp + 0x14]
mov edi, edx
mov dword [ebp - 0xc], edi
jmp 0x401af0
cmp dword [ebp + 0x14], 0x51
jne 0x401a36
movzx eax, ax
imul eax, eax, 0x397
xor edx, edx
mov ecx, 0xb1
div ecx
mov ebx, edx
add ebx, edi
jmp 0x401af0
mov ecx, 0x58aa
cmp dword [ebp + 0x14], ecx
jne 0x401ae6
cmp bx, 0xf913
jne 0x401a6a
mov eax, 0xd7
xor edx, edx
div dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
and edx, 0x231
mov eax, dword [eax + edx*4 - 0x40]
mov dword [ebp - 0x50], eax
jmp 0x401af0
cmp bx, 0x20
jae 0x401a89
mov eax, 0x10b
xor edx, edx
div dword [ebp - 8]
movzx eax, di
lea eax, [edx + eax + 0x2be]
mov dword [ebp - 0x14], eax
jmp 0x401af0
cmp bx, 0xc
ja 0x401ac0
movzx eax, word [ebp - 0x20]
xor edx, edx
mov edi, 0x82
div edi
movzx ecx, bx
xor edx, edx
imul eax, eax, 0xd7
xor eax, ecx
push eax
mov eax, ecx
mov ecx, 0x14d
div ecx
and eax, 0x25b
push eax
call esi
mov edi, dword [ebp - 0xc]
jmp 0x401af0
cmp bx, 0x23
ja 0x401ace
mov al, byte [ebp - 0x20]
jmp 0x402205
cmp bx, 7
jae 0x401af0
movzx eax, word [ebp - 0x20]
xor edx, edx
div ecx
mov ebx, edx
xor ebx, 0x2a6
jmp 0x401af0
cmp dword [ebp + 0x14], 0xc
jb 0x4020ff
imul ebx, ebx, 0xbd
cmp dword [ebp + 8], 0x32
mov dword [ebp - 0x18], ebx
jne 0x401b08
add dword [ebp - 0x20], 0x179
jmp 0x401b68
cmp dword [ebp + 8], 0xeb79
jne 0x401b54
cmp bx, 0xe307
jne 0x401b37
cmp dword [ebp - 0x14], 0x8b57
jne 0x401b68
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
or ax, 0x2a8
mov eax, dword [ecx + eax*4 - 0x36aac]
mov dword [ebp - 0x48], eax
jmp 0x401b68
cmp bx, 0x22
jne 0x401b45
mov al, byte [ebp + 0x10]
jmp 0x402205
cmp bx, 0x31
jne 0x401b68
mov dword [ebp - 0x18], 3
jmp 0x401b68
cmp dword [ebp + 8], 0x51
jae 0x401b68
lea eax, [edi + 0x61]
and al, byte [ebp - 8]
and eax, 0xf7
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x20]
cmp ax, 0x2d
jne 0x401b84
mov eax, dword [ebp + 0xc]
imul eax, eax, 0x2d
or ax, 0x28e
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x401be3
cmp ax, 0x3c
jae 0x401b99
mov eax, 0x202
xor edx, edx
div dword [ebp + 8]
mov dword [ebp - 0x18], edx
jmp 0x401be3
cmp ax, 0xe
jae 0x401ba7
mov al, byte [ebp + 0xc]
jmp 0x402205
cmp ax, 0xfdc9
jne 0x401bcc
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, 0x27e
div ecx
mov eax, dword [ebp - 0x10]
imul edx, dword [ebp + 0xc]
mov eax, dword [eax + edx*4 - 0x27e4d38]
mov dword [ebp - 0x4c], eax
jmp 0x401be3
cmp ax, 0x1f
je 0x401be3
cmp ax, 0x1c
ja 0x401be3
mov eax, dword [ebp - 0x14]
add eax, 0x12e
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
mov eax, 0x129
xor edx, edx
div ecx
mov eax, dword [ebp - 0x38]
cmp eax, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], edx
jle 0x402008
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 0x14]
add eax, 0x38d
xor eax, 0x374
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x10]
imul eax, eax
imul eax, eax, 0x185
or ax, 0x141
mov dword [ebp - 0x3c], eax
cmp dword [ebp + 0x14], 0x5c
mov esi, dword [ebp - 0x44]
je 0x402042
cmp dword [ebp + 0x14], 0x58aa
jne 0x401cb2
cmp esi, 0x807c
jne 0x401cb2
mov ebx, dword [ebp + 0xc]
cmp ebx, 0xd825
jne 0x401c66
mov eax, dword [ebp + 0x10]
imul eax, eax, 0x106
and eax, dword [ebp + 0x10]
sub eax, 0x3910d648
mov dword [ebp - 0x28], eax
jmp 0x401cb5
cmp ebx, 0x63
jbe 0x402042
cmp ebx, 0x2b
jae 0x401c8b
mov eax, 0x304
xor edx, edx
div dword [ebp + 0x10]
mov esi, edx
imul esi, dword [ebp - 0x3c]
or si, 0x2a8
jmp 0x401cb5
cmp ebx, 0xf
jae 0x401ca1
mov eax, dword [ebp - 0x3c]
lea esi, [eax + 0x29c]
xor esi, 0xa0
jmp 0x401cb5
cmp ebx, 0x5d
jb 0x401cb5
cmp ebx, 0x5f
ja 0x401cb5
mov esi, 0xd98108
jmp 0x401cb5
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, ecx
div ecx
mov edi, eax
or di, 0x19b
cmp dword [ebp + 0x10], 0x1f
je 0x401d0b
cmp dword [ebp + 0x10], 0x8dea
jne 0x401cfd
cmp ecx, 0xeb79
jne 0x401d0b
cmp esi, 0x807c
jne 0x401d0b
mov eax, 0x242
xor edx, edx
div dword [ebp + 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4 - 0x908]
mov dword [ebp - 0x24], eax
jmp 0x401d0b
cmp dword [ebp + 0x10], 0x35
ja 0x401d0b
lea edi, [ebx - 0x31d2]
xor edi, ecx
mov eax, dword [ebp + 0x14]
imul eax, eax, 0x26c
or edi, eax
cmp ebx, 0xd825
mov dword [ebp - 0x40], edi
jne 0x401d2a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + 0x10]
mov cl, 0x2e
imul cl
mov bl, 0xa9
xor edx, edx
sub bl, al
mov eax, dword [ebp + 0x10]
mov ecx, 0x11a
mov esi, dword [ebp + 0x14]
div ecx
imul esi, esi, 0x13c
and dword [ebp - 0x30], 0
sub al, bl
or al, 0x97
mov byte [ebp - 1], al
jmp 0x401d5a
mov al, byte [ebp - 1]
cmp bl, 0x38
mov edx, esi
jne 0x401d6b
push 0x32
xor edx, edx
pop eax
div dword [ebp + 0xc]
jmp 0x401dab
cmp bl, 0x9d
jne 0x401dab
mov cl, al
mov eax, dword [ebp - 0x24]
imul ecx, ecx, 0x38d
sub ecx, 0x36d07
mov edi, dword [ebp - 0x24]
shl eax, cl
mov ecx, edx
imul ecx, ecx, 0xd
add eax, dword [ebp - 0x48]
sub ecx, 0x58ec7f3
shr edi, cl
mov ecx, dword [ebp - 0x24]
add edi, dword [ebp - 0x4c]
xor eax, edi
mov edi, dword [ebp - 0x28]
add ecx, edi
mov edi, dword [ebp - 0x40]
xor eax, ecx
sub dword [ebp - 0x2c], eax
mov cl, dl
xor cl, bl
or cl, 0xad
cmp edx, 0x51
jb 0x401ef8
cmp edx, 0x58
jb 0x401ef8
cmp edx, 0x44
jb 0x40213f
cmp edx, 0x6d71d8
jne 0x401ef8
cmp dword [ebp + 0x10], 0x8dea
jne 0x401ea6
cmp dword [ebp + 0xc], 0x2f
je 0x40204a
cmp dword [ebp + 0xc], 0x3e
jb 0x401ef8
cmp dword [ebp + 0xc], 0xd825
jne 0x401ef8
mov eax, dword [ebp + 8]
cmp eax, 0x4c
jbe 0x401ef8
cmp eax, 0xeb79
jne 0x401e7d
cmp cl, 0x5a
jae 0x401e2f
push 0xd787
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x401ef8
cmp cl, 0x4a
jb 0x401ef8
cmp cl, 0x3c
jb 0x401ef8
cmp cl, 0x22
jbe 0x401ef8
cmp cl, 9
jbe 0x401ef8
cmp cl, 0xed
jne 0x401ef8
mov eax, dword [ebp - 0x2c]
mov ecx, eax
mov edx, eax
shr ecx, 5
add ecx, dword [ebp - 0x50]
shl edx, 4
add edx, dword [ebp - 0x54]
xor ecx, edx
mov edx, dword [ebp - 0x28]
add eax, edx
xor ecx, eax
sub dword [ebp - 0x24], ecx
jmp 0x401ef8
cmp eax, 0x25
jb 0x402052
cmp eax, 0x13
jne 0x401ef8
push 0xd825
push dword [ebp + 0x14]
push 0x4dac5
push 0x326
push eax
call dword [sym.imp.KERNEL32.dll_LockFile]
jmp 0x401ef8
cmp dword [ebp + 0x10], 0x3b
jne 0x401ef8
mov eax, 0x7d484
xor edx, edx
div dword [ebp + 8]
mov eax, dword [ebp + 8]
imul eax, eax, 0x2b3
movzx ecx, cl
and edx, dword [ebp + 0xc]
push edx
push 0x74
xor edx, edx
pop edi
div edi
mov eax, dword [ebp + 0xc]
imul ecx, eax
xor ecx, 0x16b
push edx
xor edx, edx
div dword [ebp + 0x14]
push 0x350
push ecx
movzx ecx, bl
push ecx
add eax, 0x1cd
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, dword [ebp - 0x40]
mov eax, 0x58aa
cmp dword [ebp + 0x14], eax
jne 0x401f15
mov ecx, dword [ebp + 0x10]
mov edx, 0x61c91432
xor ecx, 1
or ecx, dword [ebp + 0x10]
sub edx, ecx
add dword [ebp - 0x28], edx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x20
jl 0x401d57
cmp dword [ebp + 0x14], 0x14
jae 0x401f3f
mov eax, dword [ebp + 8]
imul eax, eax, 0x186
add eax, 0x180
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x401f68
cmp dword [ebp + 0x14], 0x56
jb 0x401f68
cmp dword [ebp + 0x14], eax
jne 0x401f68
cmp edi, 0xc
jbe 0x401f68
cmp edi, 0xd6bbbb
jne 0x401f68
cmp dword [ebp + 0xc], 0xd825
jne 0x401f68
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov al, cl
or al, 0x7a
cmp ecx, 0xeb79
jne 0x401f8e
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
xor eax, 0x1af
mov dword [edx + eax*4 - 0x36624], ecx
jmp 0x401fbe
cmp ecx, 0xf
jae 0x401f9b
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
jmp 0x401fbe
cmp ecx, 2
jne 0x401fbe
movzx eax, al
push 0x113
push eax
push ecx
mov ecx, dword [ebp + 0x14]
imul ecx, ecx, 0x283
xor ecx, dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_UnlockFileEx]
mov eax, dword [ebp + 8]
add eax, 0xfffffc1c
cmp ax, 0x43
jb 0x401ff7
cmp ax, 2
jbe 0x401ff7
cmp ax, 0x2d
jbe 0x401ff7
cmp ax, 0xe795
jne 0x401ff7
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0xfffffd83
or ax, 0x3d7
lea eax, [ecx + eax*4 - 0x35ff4]
mov dword [ebp - 0x1c], eax
sub dword [ebp - 0x34], 8
cmp dword [ebp - 0x34], 8
jg 0x401c27
mov ecx, dword [ebp + 8]
mov eax, 0x43dd4b
mov dword [ebp - 0x10], eax
cmp word [ebp - 0x20], 0xfdc9
mov edi, dword [ebp - 0x10]
jne 0x402024
add edi, 0x22dd
mov dword [ebp - 0x10], edi
mov esi, dword [ebp - 8]
imul esi, esi, 0x114
cmp ecx, 0x37
jae 0x402059
mov eax, dword [ebp - 8]
and eax, 0x3d8
mov dword [ebp - 0x18], eax
jmp 0x4020cd
mov al, byte [ebp + 8]
jmp 0x402205
mov al, byte [ebp + 0x14]
jmp 0x402205
mov al, 0xd8
jmp 0x402205
cmp ecx, 0x42
jne 0x402070
movzx ebx, word [ebp - 0xc]
mov eax, 0x26a
xor edx, edx
div ebx
mov dword [ebp - 0xc], edx
jmp 0x4020cd
cmp ecx, 0xeb79
jne 0x4020cd
cmp dword [ebp + 0x10], 0x8dea
jne 0x4020a2
mov eax, 0x162
xor edx, edx
div dword [ebp - 8]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffd14
or eax, edx
mov eax, dword [edi + eax*4 - 0x221ac]
mov dword [ebp - 0x38], eax
jmp 0x4020cd
cmp dword [ebp + 0x10], 0x5d
jae 0x4020b5
movzx eax, word [ebp - 0x18]
or ax, 0xe9b8
mov dword [ebp - 8], eax
jmp 0x4020cd
cmp dword [ebp + 0x10], 0x2c
ja 0x4020cd
movzx eax, word [ebp - 0x18]
movzx ebx, si
xor edx, edx
div ebx
or ax, 0x10f
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 8]
cmp edx, 0x30
jae 0x4020dc
mov al, dl
jmp 0x402205
cmp edx, 0x129
jne 0x4020fa
cmp dword [ebp + 0x14], 0x58aa
jne 0x402126
mov eax, 0x43e6a8
mov dword [ebp - 0x10], eax
mov edi, dword [ebp - 0x10]
jmp 0x402126
cmp edx, 0x36
jae 0x402107
mov al, byte [ebp - 0x14]
jmp 0x402205
cmp edx, 0x1c
jne 0x402119
imul esi, esi, 0x212
xor esi, edx
mov dword [ebp - 0xc], esi
jmp 0x402126
test edx, edx
jne 0x402126
mov eax, dword [ebp + 0x10]
add eax, 0x1c
mov dword [ebp - 0x18], eax
cmp ecx, 0xeb79
jne 0x40213a
mov eax, dword [ebp + 0x14]
lea edi, [edi + eax - 0x3f2e]
jmp 0x40217d
cmp ecx, 0x4f
jae 0x402146
mov al, cl
jmp 0x402205
cmp ecx, 0x40
jne 0x402152
mov al, cl
jmp 0x402205
cmp ecx, 0x36
jae 0x402166
mov eax, dword [ebp + 0xc]
sub eax, edx
xor eax, 0x13a
mov dword [ebp - 0x18], eax
jmp 0x40217d
cmp ecx, 0x5e
jne 0x40217d
mov eax, dword [ebp + 0x10]
xor edx, edx
mov esi, 0xfc
div esi
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp ax, 0x1fa
jne 0x40219a
push 0x60
xor edx, edx
pop eax
div dword [ebp + 0x14]
mov eax, dword [edi + edx*4 - 0x180]
mov dword [ebp + 0x14], eax
jmp 0x4021cd
cmp ax, 0x55
je 0x4021cd
cmp ax, 0x21
jb 0x4021cd
cmp ax, 0x39
jne 0x4021b7
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4021cd
cmp ax, 0x5e
jne 0x4021cd
movzx eax, word [ebp - 0x18]
imul eax, ecx
imul eax, eax, 0x355
mov dword [ebp - 8], eax
movzx eax, word [ebp - 0x18]
push 0x74
xor edx, edx
pop ecx
div ecx
xor edx, edx
mov ecx, 0x258
sub eax, dword [ebp - 8]
add eax, 0x2b444
push eax
mov eax, dword [ebp + 0x10]
div ecx
xor eax, dword [ebp - 8]
add eax, 0x2b5cb
push eax
push dword [ebp - 0x58]
push dword [ebp + 0x14]
push dword [ebp - 0x38]
call dword [ebp - 0x5c]
mov al, byte [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret