Function at 0x40c590
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7204a8
push 0x71ea50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e4
mov eax, dword [0x7577cc]
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1b4], edx
mov dword [ebp - 0x244], ecx
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x1a8], edi
mov dword [ebp - 0x194], edi
mov ecx, 0xa9dd3e38
mov dword [ebp - 0x1e8], ecx
xor eax, eax
mov dword [ebp - 0x228], eax
cmp eax, 8
jge 0x40c617
sub ecx, 0x3d9ae67f
mov dword [ebp - 0x1e8], ecx
xor edx, edx
mov dl, byte [eax*4 + 0x720488]
sub edx, ecx
mov byte [ebp + eax - 0xcc], dl
inc eax
jmp 0x40c5eb
mov byte [ebp + eax - 0xcc], 0
lea ecx, [ebp - 0xcc]
call fcn.00403b70
test eax, eax
jne 0x40c73e
mov eax, 0x75a7d8
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c640
sub eax, edx
mov esi, eax
mov ecx, 0xf21e
mov dword [ebp - 0x1f0], ecx
xor edx, edx
mov dword [ebp - 0x24c], edx
mov al, 6
mov byte [ebp - 0x1aa], al
movzx edi, al
cmp edx, edi
jae 0x40c69a
movzx ecx, cx
mov edi, ecx
shr edi, 1
shl ecx, 0xf
or ecx, edi
mov dword [ebp - 0x1f0], ecx
xor ebx, ebx
mov bl, byte [edx*2 + 0x71f6fe]
xor ebx, ecx
mov byte [ebp + edx - 0xc0], bl
inc edx
mov dword [ebp - 0x24c], edx
jmp 0x40c666
lea eax, [ebp - 0xc0]
push eax
lea ecx, [esi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 8
mov eax, 0x75a7d8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c6c0
sub eax, edx
mov edi, eax
mov dword [ebp - 0x1c8], 0xf16b3969
xor al, al
mov byte [ebp - 0x179], al
xor ecx, ecx
mov cl, byte [0x7569e4]
add ecx, 0x69
mov byte [ebp - 0x19e], cl
mov edi, edi
cmp al, cl
jge 0x40c725
mov edx, dword [ebp - 0x1c8]
add edx, 0x5e596311
mov dword [ebp - 0x1c8], edx
movsx esi, al
xor ebx, ebx
mov bl, byte [esi*4 + 0x7569e8]
add ebx, edx
mov byte [ebp + esi - 0x124], bl
inc al
mov byte [ebp - 0x179], al
jmp 0x40c6f0
call fcn.00402160
push eax
lea edx, [ebp - 0x124]
push edx
lea eax, [edi + 0x75a7d8]
push eax
jmp 0x40da51
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x170], edi
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x1bc], edi
mov dword [ebp - 0x19c], edi
push edi
call dword [0x71f24c]
mov dword [ebp - 0x16c], eax
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c771
sub eax, edx
mov edi, eax
mov ecx, 0x248b5e1c
mov dword [ebp - 0x1f8], ecx
xor al, al
mov byte [ebp - 0x175], al
mov dl, byte [0x756a08]
mov byte [ebp - 0x1a0], dl
jmp 0x40c7a0
cmp al, dl
jge 0x40c7cf
sub ecx, 0x233cccb7
mov dword [ebp - 0x1f8], ecx
movsx esi, al
xor ebx, ebx
mov bl, byte [esi*4 + 0x756a0c]
sub ebx, ecx
mov byte [ebp + esi - 0x168], bl
inc al
mov byte [ebp - 0x175], al
jmp 0x40c7a0
call fcn.00402160
push eax
mov ecx, dword [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x168]
push edx
lea eax, [edi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0x10
lea ecx, [ebp - 0x198]
push ecx
push 0x72050c
push 1
push 0
push 0x7204ec
call dword [0x71f244]
mov edi, eax
mov dword [ebp - 0x16c], edi
test edi, edi
jge 0x40c91a
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c826
sub ecx, edx
mov esi, ecx
mov eax, 0xb796696d
mov dword [ebp - 0x234], eax
xor edx, edx
mov dword [ebp - 0x200], edx
mov cl, 6
mov byte [ebp - 0x1a2], cl
lea esp, [esp]
movzx ebx, cl
cmp edx, ebx
jge 0x40c87e
mov ebx, eax
shr ebx, 0xf
shl eax, 0x11
or eax, ebx
mov dword [ebp - 0x234], eax
xor ebx, ebx
mov bl, byte [edx + 0x71f70c]
add ebx, eax
mov byte [ebp + edx - 0x64], bl
inc edx
mov dword [ebp - 0x200], edx
jmp 0x40c850
mov byte [ebp + edx - 0x64], 0
push edi
lea edx, [ebp - 0x64]
push edx
lea eax, [esi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c8a0
sub eax, ecx
mov edi, eax
mov ecx, 0x58c445fc
mov dword [ebp - 0x25c], ecx
xor al, al
mov byte [ebp - 0x185], al
movzx dx, byte [0x756a44]
mov dword [ebp - 0x2a4], edx
lea esp, [esp]
cmp al, dl
jge 0x40c8ff
sub ecx, 0x2b33c305
mov dword [ebp - 0x25c], ecx
movsx esi, al
xor ebx, ebx
mov bl, byte [esi*4 + 0x756a48]
sub ebx, ecx
mov byte [ebp + esi - 0x84], bl
inc al
mov byte [ebp - 0x185], al
jmp 0x40c8d0
movsx ecx, al
mov byte [ebp + ecx - 0x84], 0
call fcn.00402160
lea edx, [ebp - 0x84]
jmp 0x40d063
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax]
lea edx, [ebp - 0x170]
push edx
push 0x72051c
push 0x7204fc
mov edx, dword [ebp - 0x1b4]
push edx
push eax
call dword [ecx + 0x20]
mov edi, eax
mov dword [ebp - 0x16c], edi
mov eax, 0x75a7d8
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c950
sub eax, ecx
mov esi, eax
mov dl, 0xb9
mov byte [ebp - 0x189], dl
xor ecx, ecx
mov dword [ebp - 0x208], ecx
mov al, 6
mov byte [ebp - 0x1a4], al
movsx ebx, al
cmp ecx, ebx
jge 0x40c9a8
movzx edx, dl
mov ebx, edx
shr ebx, 1
shl edx, 7
xor ebx, edx
xor edx, edx
mov dl, bl
mov byte [ebp - 0x189], dl
xor ebx, ebx
mov bl, byte [ecx*4 + 0x71f718]
add ebx, edx
mov byte [ebp + ecx - 0x7c], bl
inc ecx
mov dword [ebp - 0x208], ecx
jmp 0x40c973
mov byte [ebp + ecx - 0x7c], 0
push edi
lea eax, [ebp - 0x7c]
push eax
lea ecx, [esi + 0x75a7d8]
push ecx
mov ebx, dword [0x71f174]
call ebx
add esp, 0xc
mov eax, 0x75a7d8
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c9d0
sub eax, ecx
mov edi, eax
mov byte [ebp - 0x2c], 0xe5
mov byte [ebp - 0x2b], 0x46
mov byte [ebp - 0x2a], 0xf2
mov byte [ebp - 0x29], 0xe
mov byte [ebp - 0x28], 0xfe
mov byte [ebp - 0x27], 0x19
mov byte [ebp - 0x26], 0xbb
mov byte [ebp - 0x25], 0x3c
mov al, 0x3c
mov byte [ebp - 0x17b], al
xor ecx, ecx
mov dword [ebp - 0x23c], ecx
cmp cx, 8
jae 0x40ca3d
movzx eax, al
mov edx, eax
shr edx, 4
shl eax, 4
or edx, eax
xor eax, eax
mov al, dl
mov byte [ebp - 0x17b], al
movzx esi, cx
xor edx, edx
mov dl, byte [ebp + esi - 0x2c]
xor edx, eax
mov byte [ebp + esi - 0x12c], dl
inc ecx
jmp 0x40ca05
call fcn.00402160
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
call ebx
add esp, 0xc
mov eax, dword [ebp - 0x16c]
test eax, eax
jge 0x40ca7d
and eax, 0xffff
cmp eax, 0x50
jne 0x40d999
mov dword [ebp - 0x1a8], 1
jmp 0x40d999
mov eax, dword [ebp - 0x170]
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
push ecx
push eax
call dword [edx + pe_nt_image_headers32]
mov edi, eax
mov dword [ebp - 0x16c], edi
test edi, edi
jge 0x40cb24
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40caa8
sub ecx, edx
mov esi, ecx
mov word [ebp - 0x44], 0x34
mov word [ebp - 0x42], 0x43
mov word [ebp - 0x40], 0x86
mov word [ebp - 0x3e], 0x5c
mov word [ebp - 0x3c], 0xc6
mov word [ebp - 0x3a], 0x53
mov eax, 0x3a612b2e
mov dword [ebp - 0x210], eax
xor edx, edx
mov dword [ebp - 0x254], edx
cmp edx, 6
jae 0x40cb0e
mov ecx, eax
shl ecx, 0x14
shr eax, 0xc
xor eax, ecx
mov dword [ebp - 0x210], eax
xor ecx, ecx
mov cl, byte [ebp + edx*2 - 0x44]
xor ecx, eax
mov byte [ebp + edx - 0x74], cl
inc edx
jmp 0x40cae4
mov byte [ebp + edx - 0x74], 0
push edi
lea edx, [ebp - 0x74]
push edx
lea eax, [esi + 0x75a7d8]
push eax
call ebx
add esp, 0xc
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x40cbb3
mov eax, dword [ebp - 0x170]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x88]
mov ebx, eax
mov dword [ebp - 0x16c], ebx
test ebx, ebx
jge 0x40cbb3
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cb53
sub ecx, edx
mov edi, ecx
mov eax, 0x877a
mov dword [ebp - 0x1d0], eax
xor edx, edx
mov dword [ebp - 0x1d4], edx
cmp dx, 6
jge 0x40cb96
add eax, 0xfffff533
mov dword [ebp - 0x1d0], eax
movsx esi, dx
xor ecx, ecx
mov cl, byte [esi + 0x71f730]
add ecx, eax
mov byte [ebp + esi - 0x4c], cl
inc edx
jmp 0x40cb6b
movsx edx, dx
mov byte [ebp + edx - 0x4c], 0
push ebx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov edx, dword [eax]
push 1
push eax
call dword [edx + 0x70]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40cc4d
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cbd7
sub ecx, edx
mov edi, ecx
xor edx, edx
mov dl, 0xb9
mov byte [ebp - 0x183], dl
mov byte [ebp - 0x17d], al
movzx cx, byte [0x756a64]
mov dword [ebp - 0x2bc], ecx
cmp al, cl
jae 0x40cc2f
sub edx, 0xad
mov byte [ebp - 0x183], dl
movzx esi, al
xor ebx, ebx
mov bl, byte [esi*4 + 0x756a68]
sub ebx, edx
mov byte [ebp + esi - 0xe4], bl
inc al
mov byte [ebp - 0x17d], al
jmp 0x40cc00
mov eax, dword [ebp - 0x16c]
push eax
lea ecx, [ebp - 0xe4]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
call dword [0x71f174]
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
push 0xfffffffffffffffe
push eax
call dword [ecx + 0xa8]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40ccf7
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cc74
sub ecx, edx
mov edi, ecx
mov dword [ebp - 0x1c4], 0x69a3be94
xor dl, dl
mov byte [ebp - 0x187], dl
xor eax, eax
mov al, byte [0x756a84]
sub eax, 0x94
mov byte [ebp - 0x1a9], al
cmp dl, al
jae 0x40ccd4
mov ecx, dword [ebp - 0x1c4]
add ecx, 0x7bab42b3
mov dword [ebp - 0x1c4], ecx
movzx esi, dl
xor ebx, ebx
mov bl, byte [esi + 0x756a85]
sub ebx, ecx
mov byte [ebp + esi - 0x54], bl
inc dl
mov byte [ebp - 0x187], dl
jmp 0x40cca3
movzx edx, dl
mov byte [ebp + edx - 0x54], 0
mov eax, dword [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x54]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
call dword [0x71f174]
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
push 0
push 0x720484
push eax
call dword [ecx + 0x78]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40cd93
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cd20
sub ecx, edx
mov edi, ecx
mov al, 0xfd
mov byte [ebp - 0x173], al
xor edx, edx
mov dword [ebp - 0x1dc], edx
mov cl, 6
mov byte [ebp - 0x1ab], cl
movzx si, cl
cmp dx, si
jae 0x40cd70
add eax, 0x21
mov byte [ebp - 0x173], al
movzx esi, dx
xor ebx, ebx
mov bl, byte [esi*2 + 0x71f738]
add ebx, eax
mov byte [ebp + esi - 0x5c], bl
inc edx
mov dword [ebp - 0x1dc], edx
jmp 0x40cd43
movzx edx, dx
mov byte [ebp + edx - 0x5c], 0
mov eax, dword [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x5c]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
call dword [0x71f174]
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
lea edx, [ebp - 0x1bc]
push edx
lea edx, [ebp - 0x220]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40ced0
mov ecx, 0x75a7d8
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40cdc3
sub ecx, eax
mov byte [ebp - 0x24], 7
mov byte [ebp - 0x23], 6
mov byte [ebp - 0x22], 0x9f
mov byte [ebp - 0x21], 0x1b
mov byte [ebp - 0x20], 0xbd
mov byte [ebp - 0x1f], 0xfc
mov byte [ebp - 0x1e], 0x17
mov byte [ebp - 0x1d], 1
mov edx, 0xf35f8079
mov dword [ebp - 0x1cc], edx
xor esi, esi
mov dword [ebp - 0x264], esi
mov al, 7
mov byte [ebp - 0x1ad], al
movsx di, al
cmp si, di
jge 0x40ce3b
mov edi, edx
shl edi, 0x16
shr edx, 0xa
xor edx, edi
mov dword [ebp - 0x1cc], edx
movsx edi, si
xor ebx, ebx
mov bl, byte [ebp + edi - 0x23]
sub ebx, edx
mov byte [ebp + edi - 0xd4], bl
inc esi
mov dword [ebp - 0x264], esi
jmp 0x40ce07
mov eax, dword [ebp - 0x16c]
push eax
lea edx, [ebp - 0xd4]
push edx
lea eax, [ecx + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ce61
sub eax, edx
mov edi, eax
mov ecx, 0x121af35c
mov dword [ebp - 0x1e0], ecx
xor al, al
mov byte [ebp - 0x174], al
mov dl, 7
mov byte [ebp - 0x1b5], dl
cmp al, dl
jge 0x40ceb5
add ecx, 0x661e109
mov dword [ebp - 0x1e0], ecx
movsx esi, al
xor ebx, ebx
mov bl, byte [esi + 0x71f745]
add ebx, ecx
mov byte [ebp + esi - 0xac], bl
inc al
mov byte [ebp - 0x174], al
jmp 0x40ce87
movsx ecx, al
mov byte [ebp + ecx - 0xac], 0
call fcn.00402160
lea edx, [ebp - 0xac]
jmp 0x40d063
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x2f4]
rep stosd dword es:[edi], eax
mov word [ebp - 0x2f4], 0x30
call dword [0x71f0e4]
mov ecx, eax
mov dword [ebp - 0x2b4], ecx
xor edx, edx
mov esi, 0x1c
div esi
inc edx
mov word [ebp - 0x2ec], dx
mov eax, ecx
shr eax, 5
xor edx, edx
mov esi, 0xc
div esi
inc edx
mov word [ebp - 0x2ee], dx
mov eax, ecx
shr eax, 9
xor edx, edx
mov ecx, 7
div ecx
add edx, 0x7d0
mov word [ebp - 0x2f0], dx
mov dword [ebp - 0x2d4], 6
mov eax, dword [ebp - 0x1bc]
mov edx, dword [eax]
lea ecx, [ebp - 0x2f4]
push ecx
push eax
call dword [edx + 0xc]
mov edi, eax
mov dword [ebp - 0x16c], edi
test edi, edi
jge 0x40d07a
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cf70
sub ecx, edx
mov dl, 0x1b
mov byte [ebp - 0x176], dl
mov byte [ebp - 0x171], al
cmp al, 7
jae 0x40cfba
movzx edx, dl
mov ebx, edx
shr ebx, 7
add edx, edx
or ebx, edx
xor edx, edx
mov dl, bl
mov byte [ebp - 0x176], dl
movzx esi, al
xor ebx, ebx
mov bl, byte [esi*4 + 0x756a8c]
add ebx, edx
mov byte [ebp + esi - 0xf4], bl
inc al
jmp 0x40cf81
push edi
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ecx + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cfe0
sub eax, edx
mov edi, eax
mov byte [ebp - 0x38], 0x9b
mov byte [ebp - 0x37], 0x45
mov byte [ebp - 0x36], 0x69
mov byte [ebp - 0x35], 0xe8
mov byte [ebp - 0x34], 0xc7
mov byte [ebp - 0x33], 0x5c
mov byte [ebp - 0x32], 0x14
mov byte [ebp - 0x31], 0x2f
mov byte [ebp - 0x30], 0x93
mov eax, 0xe111496d
mov dword [ebp - 0x1e4], eax
mov byte [ebp - 0x172], cl
mov dl, 8
mov byte [ebp - 0x1bd], dl
cmp cl, dl
jae 0x40d058
mov esi, eax
shr esi, 0x18
shl eax, 8
xor eax, esi
mov dword [ebp - 0x1e4], eax
movzx esi, cl
xor ebx, ebx
mov bl, byte [ebp + esi - 0x37]
add ebx, eax
mov byte [ebp + esi - 0x114], bl
inc cl
mov byte [ebp - 0x172], cl
jmp 0x40d028
call fcn.00402160
lea edx, [ebp - 0x114]
push eax
push edx
lea eax, [edi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
jmp 0x40d999
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
lea edx, [ebp - 0x19c]
push edx
push 0x72052c
push eax
call dword [ecx]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40d1a8
mov ecx, 0x75a7d8
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40d0a7
sub ecx, eax
mov edx, 0xb2b35eb1
mov dword [ebp - 0x1ec], edx
xor edi, edi
mov dword [ebp - 0x1f4], edi
mov al, 7
mov byte [ebp - 0x1bf], al
jmp 0x40d0d0
movsx esi, di
movzx ebx, al
cmp esi, ebx
jge 0x40d104
mov ebx, edx
shl ebx, 0x15
shr edx, 0xb
or edx, ebx
mov dword [ebp - 0x1ec], edx
xor ebx, ebx
mov bl, byte [esi + 0x71f74c]
sub ebx, edx
mov byte [ebp + esi - 0xec], bl
inc edi
mov dword [ebp - 0x1f4], edi
jmp 0x40d0d0
mov eax, dword [ebp - 0x16c]
push eax
lea edx, [ebp - 0xec]
push edx
lea eax, [ecx + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d130
sub eax, edx
mov edi, eax
mov eax, 0xc808263f
mov dword [ebp - 0x1fc], eax
mov byte [ebp - 0x177], cl
mov dl, 8
mov byte [ebp - 0x1be], dl
cmp cl, dl
jge 0x40d186
mov esi, eax
shr esi, 0x14
shl eax, 0xc
or eax, esi
mov dword [ebp - 0x1fc], eax
movsx esi, cl
xor ebx, ebx
mov bl, byte [esi + 0x756aa8]
sub ebx, eax
mov byte [ebp + esi - 0x104], bl
inc cl
mov byte [ebp - 0x177], cl
jmp 0x40d154
call fcn.00402160
push eax
lea ecx, [ebp - 0x104]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
call dword [0x71f174]
add esp, 0xc
jmp 0x40d999
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
lea edx, [ebp - 0x194]
push edx
push eax
call dword [ecx + 0x20]
mov edi, eax
mov dword [ebp - 0x16c], edi
test edi, edi
jl 0x40d889
mov eax, dword [ebp - 0x194]
test eax, eax
je 0x40d889
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
push 1
push 0
push eax
call dword [ecx + 0x18]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40d390
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d200
sub ecx, edx
mov edi, ecx
mov eax, 0xbf856673
mov dword [ebp - 0x204], eax
xor dl, dl
mov byte [ebp - 0x178], dl
mov ecx, 7
mov dword [ebp - 0x2c4], ecx
lea esp, [esp]
cmp dl, cl
jge 0x40d25e
add eax, 0x68e04a13
mov dword [ebp - 0x204], eax
movsx esi, dl
xor ebx, ebx
mov bl, byte [esi*2 + 0x71f756]
sub ebx, eax
mov byte [ebp + esi - 0xfc], bl
inc dl
mov byte [ebp - 0x178], dl
jmp 0x40d230
mov edx, dword [ebp - 0x16c]
push edx
lea eax, [ebp - 0xfc]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d284
sub eax, edx
mov esi, eax
mov ecx, 0xa573b784
mov dword [ebp - 0x20c], ecx
xor eax, eax
mov dword [ebp - 0x214], eax
cmp eax, 7
jae 0x40d2c7
sub ecx, 0x7cf59e15
mov dword [ebp - 0x20c], ecx
xor edx, edx
mov dl, byte [eax + 0x72047c]
xor edx, ecx
mov byte [ebp + eax - 0x9c], dl
inc eax
jmp 0x40d29c
mov byte [ebp + eax - 0x9c], 0
call fcn.00402160
push eax
lea eax, [ebp - 0x9c]
push eax
lea ecx, [esi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov edx, dword [ebp - 0x194]
push edx
call dword [0x71f130]
test eax, eax
jne 0x40d999
mov eax, 0x75a7d8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d310
sub eax, edx
mov edi, eax
mov cl, 0x32
mov byte [ebp - 0x17a], cl
xor eax, eax
mov dword [ebp - 0x21c], eax
mov dl, 0xe
mov byte [ebp - 0x1ac], dl
movsx si, dl
cmp ax, si
jge 0x40d365
add ecx, 0xb3
mov byte [ebp - 0x17a], cl
movsx esi, ax
xor ebx, ebx
mov bl, byte [esi + 0x71f764]
sub ebx, ecx
mov byte [ebp + esi - 0x158], bl
inc eax
mov dword [ebp - 0x21c], eax
jmp 0x40d333
movsx eax, ax
mov byte [ebp + eax - 0x158], 0
call fcn.00402160
push eax
call dword [0x71f0bc]
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
jmp 0x40d990
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d398
sub eax, edx
mov edi, eax
mov eax, 0x43a39115
mov dword [ebp - 0x224], eax
mov byte [ebp - 0x17c], cl
mov edx, 8
mov dword [ebp - 0x2a8], edx
nop
cmp cl, dl
jae 0x40d3f3
mov esi, eax
shl esi, 0x1d
shr eax, 3
xor eax, esi
mov dword [ebp - 0x224], eax
movzx esi, cl
xor ebx, ebx
mov bl, byte [esi*4 + 0x71f778]
sub ebx, eax
mov byte [ebp + esi - 0x11c], bl
inc cl
mov byte [ebp - 0x17c], cl
jmp 0x40d3c0
call fcn.00402160
push eax
lea eax, [ebp - 0x11c]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
mov dword [ebp - 0x16c], eax
test eax, eax
jge 0x40d52c
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d432
sub ecx, edx
mov edi, ecx
xor eax, eax
mov al, 0x12
mov byte [ebp - 0x17e], al
xor dl, dl
mov byte [ebp - 0x180], dl
mov ecx, 6
mov dword [ebp - 0x2b0], ecx
lea ebx, [ebx]
cmp dl, cl
jge 0x40d48b
sub eax, 0xbb
mov byte [ebp - 0x17e], al
movsx esi, dl
xor ebx, ebx
mov bl, byte [esi*2 + 0x71f79a]
sub ebx, eax
mov byte [ebp + esi - 0x6c], bl
inc dl
mov byte [ebp - 0x180], dl
jmp 0x40d460
movsx eax, dl
mov byte [ebp + eax - 0x6c], 0
mov ecx, dword [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x6c]
push edx
lea eax, [edi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d4b6
sub eax, ecx
mov esi, eax
mov cl, 0xec
mov byte [ebp - 0x182], cl
xor eax, eax
mov dword [ebp - 0x230], eax
mov dl, 7
mov byte [ebp - 0x19d], dl
lea esp, [esp]
movzx edi, dl
cmp eax, edi
jge 0x40d50e
sub ecx, 0x93
mov byte [ebp - 0x182], cl
xor ebx, ebx
mov bl, byte [eax*4 + 0x71f7ac]
sub ebx, ecx
mov byte [ebp + eax - 0x94], bl
inc eax
mov dword [ebp - 0x230], eax
jmp 0x40d4e0
mov byte [ebp + eax - 0x94], 0
call fcn.00402160
lea ecx, [ebp - 0x94]
lea edx, [esi + 0x75a7d8]
jmp 0x40d7d9
xor edi, edi
mov dword [ebp - 0x248], edi
mov ebx, dword [0x71f0c0]
lea ebx, [ebx]
cmp edi, 0x3c
jge 0x40d766
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax]
lea edx, [ebp - 0x190]
push edx
push 0x72051c
mov edx, dword [ebp - 0x1b4]
push edx
push eax
call dword [ecx + 0x18]
mov esi, eax
mov dword [ebp - 0x16c], esi
test esi, esi
jl 0x40d6e5
mov eax, dword [ebp - 0x190]
test eax, eax
je 0x40d6e5
mov ecx, dword [eax]
lea edx, [ebp - 0x240]
push edx
push eax
call dword [ecx + 0x40]
mov esi, eax
mov dword [ebp - 0x16c], esi
test esi, esi
jge 0x40d629
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
jmp 0x40d5b0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d5b0
sub ecx, edx
mov edi, ecx
mov eax, 0x4e4b4182
mov dword [ebp - 0x238], eax
xor dl, dl
mov byte [ebp - 0x184], dl
mov cl, 7
mov byte [ebp - 0x1a3], cl
cmp dl, cl
jge 0x40d60a
sub eax, 0x22059977
mov dword [ebp - 0x238], eax
movsx esi, dl
xor ebx, ebx
mov bl, byte [esi*2 + 0x71f7ca]
sub ebx, eax
mov byte [ebp + esi - 0xa4], bl
inc dl
mov byte [ebp - 0x184], dl
mov esi, dword [ebp - 0x16c]
jmp 0x40d5d6
movsx eax, dl
mov byte [ebp + eax - 0xa4], 0
push esi
lea ecx, [ebp - 0xa4]
push ecx
lea edx, [edi + 0x75a7d8]
push edx
jmp 0x40d75d
mov eax, dword [ebp - 0x190]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x190], 0
cmp dword [ebp - 0x240], 0x41301
jne 0x40d6d2
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d657
sub eax, edx
mov edi, eax
xor ecx, ecx
mov cl, 8
mov byte [ebp - 0x186], cl
xor al, al
mov byte [ebp - 0x188], al
mov dl, cl
mov byte [ebp - 0x19f], dl
lea esp, [esp]
cmp al, dl
jae 0x40d6ae
sub ecx, 0xf7
mov byte [ebp - 0x186], cl
movzx esi, al
xor ebx, ebx
mov bl, byte [esi + 0x71f7d8]
add ebx, ecx
mov byte [ebp + esi - 0xb8], bl
inc al
mov byte [ebp - 0x188], al
jmp 0x40d680
movzx edx, al
mov byte [ebp + edx - 0xb8], 0
call fcn.00402160
push eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
jmp 0x40d7dc
push 0xfa
call ebx
inc edi
mov dword [ebp - 0x248], edi
jmp 0x40d540
mov ecx, 0x75a7d8
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d6f0
sub ecx, edx
mov eax, 0x7fcc95a0
mov dword [ebp - 0x250], eax
xor edx, edx
mov dword [ebp - 0x258], edx
mov edi, 7
mov dword [ebp - 0x2b8], edi
cmp edx, edi
jge 0x40d746
mov ebx, eax
shl ebx, 0x1b
shr eax, 5
or eax, ebx
mov dword [ebp - 0x250], eax
xor ebx, ebx
mov bl, byte [edx*2 + 0x72046e]
xor ebx, eax
mov byte [ebp + edx - 0x8c], bl
inc edx
mov dword [ebp - 0x258], edx
jmp 0x40d717
mov byte [ebp + edx - 0x8c], 0
push esi
lea edx, [ebp - 0x8c]
push edx
lea eax, [ecx + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0xc
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d770
sub eax, edx
mov edi, eax
mov eax, 0xebb19f4d
mov dword [ebp - 0x260], eax
mov byte [ebp - 0x18a], cl
mov edx, 9
mov dword [ebp - 0x2c0], edx
cmp cl, dl
jae 0x40d7c8
mov esi, eax
shr esi, 0x1f
add eax, eax
or eax, esi
mov dword [ebp - 0x260], eax
movzx esi, cl
xor ebx, ebx
mov bl, byte [esi + 0x756ab0]
sub ebx, eax
mov byte [ebp + esi - 0x138], bl
inc cl
mov byte [ebp - 0x18a], cl
jmp 0x40d797
call fcn.00402160
lea ecx, [ebp - 0x138]
lea edx, [edi + 0x75a7d8]
push eax
push ecx
push edx
call dword [0x71f174]
add esp, 0xc
mov edx, 5
mov ecx, dword [ebp - 0x194]
call fcn.0040a0f0
test eax, eax
jne 0x40d87a
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d805
sub eax, edx
mov edi, eax
mov ecx, 0xb9ee738b
mov dword [ebp - 0x268], ecx
xor dl, dl
mov byte [ebp - 0x181], dl
movzx ax, byte [0x756abc]
mov dword [ebp - 0x2ac], eax
cmp dl, al
jge 0x40d863
mov esi, ecx
shr esi, 0x1d
shl ecx, 3
xor ecx, esi
mov dword [ebp - 0x268], ecx
movsx esi, dl
xor ebx, ebx
mov bl, byte [esi + 0x756abd]
xor ebx, ecx
mov byte [ebp + esi - 0xdc], bl
inc dl
mov byte [ebp - 0x181], dl
jmp 0x40d831
lea edx, [ebp - 0xdc]
push edx
lea eax, [edi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 8
mov dword [ebp - 0x1a8], 1
jmp 0x40d999
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d891
sub eax, edx
mov esi, eax
mov edx, 0xd
mov dword [ebp - 0x2a0], edx
mov dword [ebp - 0x29c], 0xee
mov dword [ebp - 0x298], 0xe8
mov dword [ebp - 0x294], 0x1b
mov dword [ebp - 0x290], 0x79
mov dword [ebp - 0x28c], 0xac
mov dword [ebp - 0x288], 0x6a
mov dword [ebp - 0x284], 3
mov dword [ebp - 0x280], 0x31
mov dword [ebp - 0x27c], 0xa7
mov dword [ebp - 0x278], 0x1a
mov dword [ebp - 0x274], 0x65
mov dword [ebp - 0x270], 0x95
mov dword [ebp - 0x26c], 0x19
mov ecx, 0x4b0e6de4
mov dword [ebp - 0x22c], ecx
xor eax, eax
mov dword [ebp - 0x218], eax
mov byte [ebp - 0x1a1], dl
movzx ebx, dl
cmp eax, ebx
jge 0x40d973
mov ebx, ecx
shr ebx, 0x1f
add ecx, ecx
or ecx, ebx
mov dword [ebp - 0x22c], ecx
xor ebx, ebx
mov bl, byte [ebp + eax*4 - 0x29c]
xor ebx, ecx
mov byte [ebp + eax - 0x148], bl
inc eax
mov dword [ebp - 0x218], eax
jmp 0x40d942
mov byte [ebp + eax - 0x148], 0
call fcn.00402160
push eax
push edi
lea edx, [ebp - 0x148]
push edx
lea eax, [esi + 0x75a7d8]
push eax
call dword [0x71f174]
add esp, 0x10
mov eax, dword [ebp - 0x19c]
test eax, eax
je 0x40d9a9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x40d9b9
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x40d9c9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x190]
test eax, eax
je 0x40d9d9
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x40d9e9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [0x71f248]
mov eax, 0x75a7d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d9f7
sub eax, edx
mov edi, eax
xor eax, eax
mov al, 0x36
mov byte [ebp - 0x17f], al
xor ecx, ecx
mov dword [ebp - 0x1d8], ecx
cmp cx, 8
jge 0x40da3d
sub eax, 0xb3
mov byte [ebp - 0x17f], al
movsx esi, cx
xor edx, edx
mov dl, byte [esi*4 + 0x756ac4]
add edx, eax
mov byte [ebp + esi - 0x10c], dl
inc ecx
jmp 0x40da0e
call fcn.00402160
push eax
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 0x75a7d8]
push ecx
call dword [0x71f174]
add esp, 0xc
mov edi, dword [ebp - 0x1a8]
test edi, edi
je 0x40da94
push 2
mov edx, dword [ebp - 0x1b4]
push edx
mov edx, 7
mov esi, dword [ebp - 0x244]
mov ecx, esi
call fcn.0040b570
push 2
mov eax, dword [ebp - 0x194]
push eax
mov edx, 8
mov ecx, esi
call fcn.0040b570
mov dword [ebp - 4], 0xffffffff
mov eax, edi
jmp 0x40dab1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x1c]
call 0x40f759
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8