Function at 0x405150
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov eax, dword [0x42d5e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x429712
call fcn.00406440
add esp, 4
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x6c]
call fcn.00407860
mov ecx, dword [0x42df48]
mov esi, 0xf37dd412
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
lea eax, [ecx - 1]
imul eax, ecx
mov edx, eax
mov ecx, eax
not edx
xor ecx, 0x8d1a3b5e
mov edi, edx
and ecx, eax
and edx, 0xd138df88
and eax, 0x2ec72077
and edi, 0x8d1a3b5e
or eax, edx
mov ebx, edi
and ebx, ecx
xor ecx, edi
or ecx, ebx
mov edi, ecx
and ecx, 0x6f7d8982
not edi
and edi, 0x9082767d
or ecx, edi
mov edi, ecx
xor ecx, 0x1d984d22
xor edi, 0xe246229d
mov edx, ecx
and edx, 0xc219962
and edi, 0xf3de669d
or edi, edx
mov edx, eax
xor eax, 0x209900
xor edx, 0x22c62015
and eax, 0xc219962
and edx, 0xf3de669d
or edx, eax
mov eax, dword [0x42df4c]
xor edx, edi
mov edi, 0xf34e863a
not edx
or edx, ecx
cmp edx, 0xffffffff
sete dl
setne ch
sete byte [ebp - 0x44]
cmp eax, 9
setg cl
cmp eax, 0xa
setl al
setl byte [ebp - 0x40]
and ch, cl
and al, dl
or al, ch
mov dh, al
xor dh, cl
and dh, al
mov eax, ecx
or cl, dl
xor al, dl
xor cl, 1
not al
and al, dl
mov dl, al
and dl, cl
xor cl, al
or cl, dl
xor cl, dh
mov eax, ecx
xor al, 1
and dh, al
xor al, dh
test al, 1
cmovne edi, esi
test cl, cl
mov ecx, 0xf34e863a
cmove ecx, edi
test dh, dh
mov edx, 0xa9ce8ab6
cmove ecx, edi
nop word cs:[eax + eax]
cmp edx, 0xf34e8639
jg 0x405340
cmp edx, 0xa2a24f9a
je 0x40536b
cmp edx, 0xa9ce8ab6
jne 0x405290
movzx eax, byte [ebp - 0x44]
mov bh, byte [ebp - 0x40]
mov edi, 0xa2a24f9a
mov bl, al
mov dl, bh
xor bl, 1
xor dl, 1
mov ah, bl
mov dh, bl
and ah, dl
xor dh, dl
and dl, bh
or dh, ah
mov ah, dl
xor dl, bh
and ah, bh
or dl, ah
and bl, dl
xor dl, 1
and dl, al
or dl, bl
mov eax, edx
xor al, 1
mov ah, al
mov ebx, eax
xor al, dh
and ah, dl
xor bl, ah
xor ah, 1
or ah, dl
xor ah, 1
or ah, bl
mov bl, ah
xor ah, 1
and ah, dh
xor dh, 1
or dl, dh
and bl, dh
xor dl, 1
or ah, bl
or dl, al
mov al, dl
xor al, ah
test al, 1
cmovne edi, esi
test dl, 1
mov edx, 0xa2a24f9a
cmovne edx, edi
test ah, 1
cmove edx, edi
cmp edx, 0xf34e8639
jle 0x40529c
nop word cs:[eax + eax]
cmp edx, 0xf34e863a
je 0x40537f
cmp edx, 0xf37dd412
jne 0x405290
mov byte [ebp - 0x28], 0
mov edx, 0xa2a24f9a
cmp edx, 0xf34e8639
jle 0x40529c
jmp 0x405340
mov byte [ebp - 0x28], 0
mov edx, ecx
cmp edx, 0xf34e8639
jle 0x40529c
jmp 0x405340
mov eax, dword [ebp + 8]
mov edi, eax
push eax
call fcn.00415910
add esp, 4
lea esi, [ebp - 0x28]
mov ecx, esi
push eax
push edi
call fcn.004080f0
mov dword [ebp - 0x48], esi
mov edi, 0x8c884e39
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
mov eax, dword [0x42df18]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
or eax, 1
not esi
mov ebx, eax
mov dword [ebp - 0x70], esi
or esi, 0xf0396b82
and eax, 0xf0396b83
not ebx
and esi, 0xf0396b83
mov edx, dword [ebp - 0x70]
and ebx, 0xfc6947c
or ebx, eax
xor esi, ebx
mov eax, esi
mov ebx, esi
and edx, 0x66ea6c6a
or esi, ecx
not eax
and ebx, 0x99159395
not esi
and eax, 0x66ea6c6a
or eax, ebx
mov ebx, ecx
and ebx, 0x99159395
or edx, ebx
xor edx, eax
mov eax, dword [0x42df1c]
or esi, edx
mov edx, esi
and esi, 0x488ef5f9
not edx
and edx, 0xb7710a06
or esi, edx
xor esi, 0x488ef5f9
mov esi, 0xd00f2f7e
sete dl
setne dh
cmp eax, 0xa
setl bl
cmp eax, 9
setg bh
mov byte [ebp - 0x80], bl
mov al, bh
mov ah, bh
or dl, bh
mov byte [ebp - 0x7c], bh
and al, dh
xor ah, dh
or dh, bl
mov ebx, 0xd00f2f7e
or ah, al
mov al, dh
xor al, dl
or dl, dh
xor dl, 1
or dl, al
mov al, dl
and dl, ah
xor ah, 1
xor al, 1
mov dh, ah
xor dh, al
and al, ah
and dh, ah
or al, dl
mov dl, dh
xor dl, al
test al, al
mov eax, 0x766def7
cmovne esi, eax
test dh, dh
cmove esi, ebx
test dl, 1
mov edx, dword [ebp - 0x70]
mov ebx, 0xd00f2f7e
cmovne esi, eax
and ecx, 0x44002256
mov dword [ebp - 0x78], esi
mov eax, edx
or edx, 0x4f897277
and eax, 0xb895021
or ecx, eax
mov eax, ecx
xor ecx, 0x21638d20
xor eax, 0x40000210
and ecx, 0x2563ad66
and eax, 0x4a885211
or eax, ecx
mov ecx, edx
and edx, 0x2563ad66
not ecx
and ecx, 0x90140088
or ecx, edx
xor ecx, eax
mov eax, ecx
and ecx, 0xf47b166a
not eax
and eax, 0xb84e995
or ecx, eax
mov eax, ecx
mov edx, ecx
xor ecx, 0xd9940
xor eax, 0xbbf2641d
xor edx, 0xbbf2641c
and ecx, 0x1bff949
and edx, eax
and eax, 0xfe4006b6
or eax, ecx
mov ecx, edx
xor eax, 0xfe4006b7
and ecx, eax
xor eax, edx
or eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and ecx, eax
and eax, 0x1680bc65
and edx, 0xe97f439a
or eax, edx
mov edx, eax
xor eax, 0xe97f439a
xor edx, 0x1200b060
mov esi, eax
and esi, 0xedb44f85
and edx, 0x124bb07a
or edx, esi
mov esi, ecx
and ecx, 0x124bb07a
not esi
or eax, esi
and esi, 0xedb44f85
or ecx, esi
not eax
mov esi, 0xa29389ca
xor ecx, edx
or eax, ecx
mov ch, byte [ebp - 0x7c]
setne cl
sete al
mov edx, ecx
and cl, byte [ebp - 0x80]
xor dl, ch
and al, ch
xor dl, 1
mov ah, dl
or al, cl
xor ah, ch
xor al, 1
and ah, dl
xor ah, 1
mov cl, ah
or cl, al
xor al, ah
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xd00f2f7e
cmovne eax, esi
test cl, cl
cmovne eax, ebx
test dl, 1
cmove eax, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edi, 0x766def6
jg 0x4055f0
cmp edi, 0x8c884e39
je 0x405630
cmp edi, 0xa29389ca
je 0x40560a
cmp edi, 0xd00f2f7e
jne 0x4055c0
mov edi, 0xa29389ca
cmp edi, 0x766def6
jle 0x4055c8
nop dword [eax]
cmp edi, 0x766def7
je 0x405665
cmp edi, 0x10ff6b8c
je 0x405617
cmp edi, 0x57186db1
jne 0x4055c0
jmp 0x405650
mov edi, dword [ebp - 0x78]
cmp edi, 0x766def6
jle 0x4055c8
jmp 0x4055f0
mov ecx, dword [ebp - 0x84]
mov edi, eax
mov dword [ebp - 0x40], ecx
cmp edi, 0x766def6
jle 0x4055c8
jmp 0x4055f0
cmp dword [ebp - 0x14], 0xf
mov ecx, dword [ebp - 0x44]
mov edi, 0x10ff6b8c
mov eax, 0x57186db1
cmova edi, eax
mov dword [ebp - 0x84], ecx
jmp 0x4053a7
mov eax, dword [ebp - 0x48]
mov edi, 0x10ff6b8c
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
jmp 0x4053a7
push 0x42970f
push dword [ebp - 0x40]
call fcn.00414b8e
add esp, 8
mov dword [ebp - 0x68], eax
mov eax, 0xe8362f19
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
push edi
call fcn.00415910
add esp, 4
lea esi, [ebp - 0x40]
mov ecx, esi
push eax
push edi
call fcn.004080f0
push 0x235
push esi
call fcn.004015b0
add esp, 8
mov ecx, esi
call fcn.00406c00
mov eax, 0x6e4d3059
nop dword [eax + eax]
cmp eax, 0x4ce0f863
jg 0x405a00
cmp eax, 0xe8362f18
jg 0x405730
cmp eax, 0x98574809
je 0x405983
cmp eax, 0xbb7ee3d1
je 0x405ee1
cmp eax, 0xcf76799c
jne 0x4056c0
mov eax, dword [ebp - 0x80]
mov edx, 0x534a8e46
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
cmp ecx, eax
mov eax, 0x4ee98407
cmovl eax, edx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
cmp eax, 0xe8362f19
je 0x4059b7
cmp eax, 0xeeb03cf2
je 0x4059d5
cmp eax, 0xf76dd04
jne 0x4056c0
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x40]
call fcn.00407860
mov ecx, dword [0x42df48]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
lea eax, [ecx - 1]
imul eax, ecx
mov edx, eax
mov ecx, eax
not edx
xor ecx, 0xfffffffe
mov esi, edx
and ecx, eax
and edx, 0xb13e768
and eax, 0xf4ec1897
and esi, 0xfffffffe
or eax, edx
mov ebx, esi
and ebx, ecx
xor ecx, esi
or ecx, ebx
mov ebx, 0xf34e863a
mov edx, ecx
and ecx, 0xa4d4ee07
not edx
mov esi, edx
and esi, 0x5b2b11f8
or ecx, esi
mov esi, eax
xor eax, 0xb030168
xor esi, 0xa4c40807
and eax, 0x5b2b11f8
and esi, 0xa4d4ee07
or esi, eax
mov eax, dword [0x42df4c]
xor esi, ecx
xor edx, esi
test edx, esi
mov esi, 0xf37dd412
setne dl
sete ch
sete byte [ebp - 0x48]
cmp eax, 9
setg dh
cmp eax, 0xa
setl al
mov cl, dh
setl byte [ebp - 0x44]
mov ah, al
xor cl, ch
xor al, ch
and ch, dh
or dh, dl
and ah, dl
xor dh, 1
mov dl, cl
or ah, ch
or dh, al
xor dl, 1
xor ah, 1
mov al, ah
or ah, dh
xor al, dh
xor ah, 1
or ah, al
mov al, ah
not al
and al, cl
or cl, ah
and ah, dl
or ah, al
mov dl, ah
xor dl, cl
test ah, ah
cmovne esi, ebx
test cl, 1
mov ecx, 0xf37dd412
cmovne esi, ecx
test dl, 1
mov ecx, 0xa9ce8ab6
cmove esi, ebx
nop dword [eax + eax]
cmp ecx, 0xf34e8639
jg 0x405940
cmp ecx, 0xa2a24f9a
je 0x40596f
cmp ecx, 0xa9ce8ab6
jne 0x405850
movzx edx, byte [ebp - 0x48]
mov byte [ebp - 0x74], dl
mov ecx, edx
mov dh, byte [ebp - 0x44]
xor cl, 1
mov eax, ecx
or al, dl
xor al, cl
mov bl, dh
mov dl, al
mov ah, al
xor bl, 1
and dl, cl
and cl, dh
mov bh, bl
xor ah, dl
xor dl, 1
or bh, dh
or dl, al
xor ah, 1
mov ch, bh
xor dl, 1
xor ch, 1
or dl, ah
mov al, ch
and al, bh
mov ah, al
xor al, ch
and ah, ch
or al, ah
mov ah, al
xor al, 1
and ah, dh
and al, bl
or al, ah
mov ah, dh
and ah, bh
xor bh, dh
or bh, ah
mov ah, al
xor bh, 1
and ah, bh
xor bh, al
or bh, ah
mov ah, byte [ebp - 0x74]
mov al, bh
xor al, 1
and al, dl
xor dl, 1
and bl, ah
and dl, bh
or ah, dh
or cl, bl
or dl, al
mov al, ah
mov ebx, 0xa2a24f9a
xor cl, 1
xor al, cl
or cl, ah
mov ah, dl
xor cl, 1
or cl, al
mov al, cl
xor ah, cl
and cl, dl
and ah, dl
xor al, 1
xor dl, 1
and dl, al
mov al, ah
or cl, dl
mov edx, 0xf37dd412
xor al, cl
test al, 1
cmovne edx, ebx
test cl, 1
mov ecx, edx
cmovne ecx, ebx
test ah, 1
cmove ecx, edx
cmp ecx, 0xf34e8639
jle 0x40585c
nop word [eax + eax]
cmp ecx, 0xf34e863a
je 0x405689
cmp ecx, 0xf37dd412
jne 0x405850
mov byte [ebp - 0x40], 0
mov ecx, 0xa2a24f9a
cmp ecx, 0xf34e8639
jle 0x40585c
jmp 0x405940
mov byte [ebp - 0x40], 0
mov ecx, esi
cmp ecx, 0xf34e8639
jle 0x40585c
jmp 0x405940
mov eax, dword [ebp - 0x4c]
add eax, 0x28
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x80], eax
mov eax, 0xcf76799c
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
cmp dword [ebp - 0x68], 0
mov eax, 0x4ce0f864
mov ecx, 0xbb7ee3d1
cmove eax, ecx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x14]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x8c], eax
mov eax, 0x98574809
cmp eax, 0x4ce0f863
jle 0x4056cb
cmp eax, 0x5bff5ba2
jg 0x405b50
cmp eax, 0x4ce0f864
je 0x405b76
cmp eax, 0x4ee98407
je 0x405ec2
cmp eax, 0x534a8e46
jne 0x4056c0
mov ecx, dword [0x42df60]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov esi, eax
not ecx
and esi, 0x14970a
mov edx, ecx
and ecx, 0x54a8e361
and edx, 0x33636014
or esi, edx
mov edx, eax
xor edx, 0x3377f71e
xor esi, 0x14970a
and edx, eax
mov edi, esi
and eax, 0xab571c9e
and edi, edx
xor edx, esi
or eax, ecx
or edx, edi
xor eax, 0xab571c9e
mov esi, edx
and edx, 0x3377f71f
not esi
and esi, 0xcc8808e0
or edx, esi
mov esi, dword [0x42df64]
not edx
mov ecx, edx
and ecx, eax
xor eax, edx
or eax, ecx
cmp eax, 0xffffffff
sete dl
cmp esi, 9
setg cl
cmp esi, 0xa
mov esi, 0xf76dd04
setl al
mov ah, al
xor ah, cl
xor cl, dl
and ah, al
xor cl, 1
mov ch, ah
xor ch, 1
mov dh, ch
mov bl, ch
or ch, ah
and dh, ah
xor ch, 1
xor bl, dh
xor dh, 1
or dh, ah
xor dh, 1
or dh, bl
xor dh, 1
mov ah, dh
and ah, ch
xor ch, dh
or ch, ah
mov ah, dl
xor ah, ch
mov dh, ah
and ah, ch
and dh, dl
mov ch, dh
and ch, ah
xor ah, dh
or ah, ch
mov ch, al
xor al, dl
and ch, dl
mov edx, ecx
xor ah, 1
or al, ch
xor al, 1
and dl, al
xor al, cl
mov cl, ah
or al, dl
mov edx, 0x6e4d3059
or cl, al
xor ah, al
mov al, cl
xor al, ah
test al, 1
cmovne edx, esi
test ah, 1
mov esi, 0x6e4d3059
mov eax, edx
cmovne eax, esi
test cl, 1
cmovne eax, edx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
cmp eax, 0x5bff5ba3
je 0x405ef6
cmp eax, 0x6e4d3059
je 0x405f29
cmp eax, 0x60de8f8f
jne 0x4056c0
jmp 0x406420
push 2
push 0
push dword [ebp - 0x68]
call fcn.00414f8b
add esp, 0xc
push dword [ebp - 0x68]
call fcn.004152ae
add esp, 4
mov dword [ebp - 0x88], eax
push dword [ebp - 0x68]
call fcn.00414a39
add esp, 4
lea eax, [ebp - 0x28]
mov ecx, 0x8c884e39
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
mov edx, dword [0x42df18]
mov eax, dword [0x42df1c]
lea edi, [edx - 1]
imul edi, edx
mov esi, edi
mov ebx, edi
not esi
and ebx, 0xd476043e
mov edx, esi
mov dword [ebp - 0x7c], esi
and edx, 0x2b89fbc0
or ebx, edx
mov edx, ebx
xor ebx, 0x2989aac0
xor edx, 0xd0500406
and ebx, 0x2dafaaf8
and edx, 0xd2505506
or edx, ebx
mov ebx, edi
or ebx, 0x2dafaaf8
and ebx, 0x2dafaaf9
xor ebx, edx
not ebx
mov edx, ebx
xor ebx, esi
and edx, esi
mov esi, 0x766def7
or ebx, edx
cmp ebx, 0xffffffff
sete dl
cmp eax, 9
setg dh
cmp eax, 0xa
mov eax, edx
setl ah
mov byte [ebp - 0x70], dh
xor al, ah
mov byte [ebp - 0x80], ah
mov bh, al
and dl, al
and al, ah
or bh, dh
mov dh, dl
mov ah, bh
and dh, al
xor al, dl
xor ah, 1
or al, dh
mov dl, ah
and dl, bh
mov dh, dl
xor dl, ah
and dh, ah
or dl, dh
mov ah, dl
xor ah, 1
and ah, al
xor al, 1
and dl, al
or dl, ah
mov ah, bh
and ah, al
xor al, bh
mov ebx, 0xd00f2f7e
or al, ah
mov ah, al
xor ah, dl
test ah, 1
cmovne esi, ebx
test al, 1
mov eax, 0x766def7
cmovne eax, esi
test dl, 1
mov edx, dword [ebp - 0x7c]
cmove eax, esi
mov dword [ebp - 0x78], eax
mov eax, edi
xor eax, 0x12183276
and eax, edi
and edx, 0x10182276
and edi, 0x2001000
or edi, edx
mov edx, edi
xor edi, 0xfdffefff
xor edx, 0x1000
mov esi, edi
and esi, 0x1ee1edae
and edx, 0x181250
or edx, esi
mov esi, eax
and eax, 0xe11e1251
not esi
or edi, esi
and esi, 0x1ee1edae
or eax, esi
not edi
xor eax, edx
or edi, eax
mov eax, edi
and edi, 0x12183276
not eax
and eax, 0xede7cd89
or edi, eax
mov esi, edi
mov ebx, edi
xor esi, 0x5333f653
not ebx
mov edx, esi
and esi, edi
xor edi, 0xfffffffe
and edx, ebx
and ebx, 1
mov eax, edx
or edi, ebx
mov bh, byte [ebp - 0x80]
and eax, esi
xor esi, edx
or esi, eax
mov eax, esi
and esi, 0x9ac35e0b
not eax
and eax, 0x653ca1f4
or esi, eax
mov eax, esi
xor esi, 0x360f57a6
mov edx, esi
xor eax, 0xc0808059
or esi, edi
and edx, 0x1d7c2ca6
and eax, 0xe283d359
not esi
or eax, edx
mov edx, edi
and edi, 0x1d7c2ca6
not edx
and edx, 0xe283d359
or edx, edi
xor edx, eax
or esi, edx
mov eax, esi
and esi, 0x17be64fe
not eax
and eax, 0xe8419b01
or esi, eax
mov eax, esi
xor esi, 0xe8419b01
xor eax, 0x52240c2
mov edx, esi
and edx, 0x329d3c3c
and eax, 0xcd62c3c3
or eax, edx
xor eax, 0x329d3c3c
xor esi, eax
test esi, eax
mov esi, 0xd00f2f7e
sete ah
setne dl
mov dh, ah
and dl, bh
xor dh, bh
mov al, dh
and al, bh
and bh, ah
or bh, dh
and dh, ah
mov bl, dh
and bl, al
xor al, dh
or al, bl
mov bl, byte [ebp - 0x70]
and bl, ah
or bl, dl
mov dl, bh
xor dl, bl
xor bl, 1
or bl, bh
xor dl, 1
xor bl, 1
or bl, dl
mov edx, ebx
xor dl, 1
and bl, dl
mov ah, dl
and ah, bl
xor bl, dl
or bl, ah
mov edx, ebx
mov dh, bl
xor dl, 1
and dh, dl
mov ah, dh
xor dh, bl
and ah, bl
or bl, al
or dh, ah
xor bl, 1
mov ah, dh
xor dh, 1
and dh, al
xor al, 1
and ah, al
xor al, dl
or bl, al
or dh, ah
mov eax, 0xa29389ca
mov dl, bl
xor dl, dh
test bl, 1
cmovne eax, esi
test dh, 1
cmove eax, esi
test dl, 1
mov esi, 0xa29389ca
cmove eax, esi
cmp ecx, 0x766def6
jg 0x405e50
cmp ecx, 0x8c884e39
je 0x405e90
cmp ecx, 0xa29389ca
je 0x405e6e
cmp ecx, 0xd00f2f7e
jne 0x405e20
mov ecx, 0xa29389ca
cmp ecx, 0x766def6
jle 0x405e28
nop dword [eax]
cmp ecx, 0x766def7
je 0x40622f
cmp ecx, 0x10ff6b8c
je 0x405e7b
cmp ecx, 0x57186db1
jne 0x405e20
jmp 0x405eb0
mov ecx, dword [ebp - 0x78]
cmp ecx, 0x766def6
jle 0x405e28
jmp 0x405e50
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x40], ecx
mov ecx, eax
cmp ecx, 0x766def6
jle 0x405e28
jmp 0x405e50
cmp dword [ebp - 0x14], 0xf
mov edx, dword [ebp - 0x44]
mov ecx, 0x10ff6b8c
mov eax, 0x57186db1
cmova ecx, eax
mov dword [ebp - 0x74], edx
jmp 0x405bb2
mov eax, dword [ebp - 0x48]
mov ecx, 0x10ff6b8c
mov eax, dword [eax]
mov dword [ebp - 0x74], eax
jmp 0x405bb2
push dword [ebp - 0x54]
push dword [ebp - 0x50]
call fcn.004047f0
add esp, 8
mov eax, dword [sym.imp.ADVAPI32.dll_CryptEnumProvidersA]
push 1
push 0
push 0
push 0
push 0
call dword [eax]
mov eax, 0x60de8f8f
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
cmp byte [ebp - 0x59], 0
mov eax, 0x98574809
mov ecx, 0xeeb03cf2
cmovne eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x8c], ecx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x40]
call fcn.00407860
mov eax, dword [0x42df48]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
mov eax, ecx
xor edx, 0x53246371
and eax, 0x42200370
and edx, ecx
not ecx
and ecx, 0x11046001
or eax, ecx
xor eax, 0x42200370
mov ecx, eax
and ecx, edx
xor edx, eax
or edx, ecx
mov eax, edx
and edx, 0x3f53a16
not eax
and eax, 0xfc0ac5e9
or edx, eax
mov ecx, edx
xor edx, 0xaf2ea698
mov eax, edx
xor ecx, 0x10d14960
and edx, 0xc228149f
or eax, 1
and ecx, 0x3dd7eb60
mov esi, eax
or ecx, edx
mov edx, eax
not esi
and edx, 0x6175ff91
and esi, 0x9e8a006e
or esi, edx
mov edx, ecx
xor ecx, 0xc228149e
xor edx, 0x1c820060
or eax, ecx
and ecx, 0x6175ff91
and edx, 0x9e8a006e
not eax
or edx, ecx
xor edx, esi
mov esi, dword [0x42df4c]
or eax, edx
mov ecx, eax
not ecx
mov edx, ecx
and ecx, eax
and eax, 0xbe67284d
and edx, 0x4198d7b2
or eax, edx
xor eax, 0xbe67284d
mov edx, eax
xor eax, ecx
and edx, ecx
or eax, edx
mov ecx, eax
and eax, 0x4e5f3cb8
not ecx
and ecx, 0xb1a0c347
or ecx, eax
xor ecx, 0xb1a0c347
sete dl
setne cl
sete byte [ebp - 0x48]
cmp esi, 9
setg ah
cmp esi, 0xa
mov esi, 0xf37dd412
setl ch
setl byte [ebp - 0x44]
mov dh, ah
mov al, ah
xor ah, dl
not ah
and dh, cl
xor al, cl
xor cl, ch
and ah, dl
not cl
or al, dh
and cl, ch
xor ah, 1
xor cl, 1
mov dl, ah
xor dl, cl
or cl, ah
xor cl, 1
or cl, dl
mov edx, ecx
mov ah, cl
xor dl, 1
and ah, dl
mov ch, ah
xor ah, cl
and ch, cl
or ah, ch
mov ch, al
mov cl, ah
and ch, dl
xor dl, al
xor ah, 1
and cl, al
xor al, 1
or dl, ch
and ah, al
mov al, dl
or ah, cl
mov ecx, 0xf34e863a
xor al, ah
test al, 1
cmovne ecx, esi
test dl, 1
mov esi, 0xf34e863a
cmovne esi, ecx
test ah, ah
mov eax, 0xa9ce8ab6
cmove esi, ecx
nop dword [eax]
cmp eax, 0xf34e8639
jg 0x4061f0
cmp eax, 0xa2a24f9a
je 0x40621c
cmp eax, 0xa9ce8ab6
jne 0x4060b0
movzx edx, byte [ebp - 0x48]
movzx ecx, byte [ebp - 0x44]
mov ah, cl
mov al, cl
mov byte [ebp - 0x88], cl
mov ch, dl
mov byte [ebp - 0x74], dl
xor ah, 1
xor ch, 1
mov cl, ah
mov dh, ah
and cl, al
and dh, cl
xor cl, ah
or cl, dh
mov dh, ch
or dh, dl
mov al, cl
mov bh, dh
xor al, 1
and dl, dh
or dh, ch
xor bh, 1
mov bl, al
and bh, ch
or bl, cl
or bh, dl
mov dl, dh
xor dl, bh
xor bh, 1
or bh, dh
mov dh, bl
xor dl, 1
and bl, byte [ebp - 0x88]
xor bh, 1
xor dh, 1
or bh, dl
mov dl, dh
xor dl, ah
and dl, dh
and dh, ah
or dh, bl
mov ah, dl
mov bl, byte [ebp - 0x74]
and ah, dh
xor dh, dl
or dh, ah
xor dh, 1
mov dl, dh
xor dh, bh
xor dh, 1
or dl, bh
and dh, bh
mov ah, dl
mov bh, al
xor ah, dh
xor dh, 1
and bh, cl
or dh, dl
mov dl, bl
xor ah, 1
xor dh, 1
and dl, ch
or dh, ah
mov ah, bl
xor bl, al
xor al, bh
xor bh, 1
xor ah, dl
xor dl, 1
or bh, cl
or cl, ch
or dl, ch
xor bh, 1
xor cl, 1
xor dl, 1
or bh, al
or cl, bl
or dl, ah
mov eax, ecx
xor bh, dl
mov dl, dh
xor al, bh
xor bh, 1
or bh, cl
xor al, 1
xor bh, 1
or bh, al
mov al, bh
and dl, bh
xor al, 1
mov ecx, eax
or al, dh
xor dh, 1
and cl, dh
xor dh, bh
xor al, 1
mov ebx, 0xf37dd412
or al, dh
or dl, cl
mov ecx, eax
xor cl, dl
test cl, 1
mov ecx, 0xa2a24f9a
cmovne ecx, ebx
test al, 1
mov eax, 0xa2a24f9a
cmovne eax, ecx
test dl, 1
cmove eax, ecx
cmp eax, 0xf34e8639
jle 0x4060bb
nop word cs:[eax + eax]
nop
cmp eax, 0xf34e863a
je 0x4062b0
cmp eax, 0xf37dd412
jne 0x4060b0
mov byte [ebp - 0x40], 0
mov eax, 0xa2a24f9a
cmp eax, 0xf34e8639
jle 0x4060bb
jmp 0x4061f0
mov byte [ebp - 0x40], 0
mov eax, esi
cmp eax, 0xf34e8639
jle 0x4060bb
jmp 0x4061f0
push 0x42970f
push dword [ebp - 0x40]
call fcn.00414b8e
add esp, 8
mov edi, dword [ebp - 0x88]
mov esi, eax
push edi
call fcn.00415903
add esp, 4
mov dword [ebp - 0x64], eax
push esi
push edi
push 1
push dword [ebp - 0x64]
call fcn.00414d7a
add esp, 0x10
push esi
call fcn.00414a39
add esp, 4
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
movzx edx, word [ecx + eax + 6]
lea eax, [ecx + eax + 0xf8]
mov dword [ebp - 0x70], eax
mov eax, 0xcf76799c
mov dword [ebp - 0x60], edx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
push edi
call fcn.00415910
add esp, 4
lea esi, [ebp - 0x40]
mov ecx, esi
push eax
push edi
call fcn.004080f0
push 0x235
push esi
call fcn.004015b0
add esp, 8
cmp eax, 0x36a45b4e
mov ecx, esi
sete byte [ebp - 0x59]
call fcn.00406c00
mov eax, dword [0x42df60]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
or ecx, 0xcb8c3302
not edx
mov esi, ecx
and ecx, 0xbda6e74b
or edx, 0x3473ccfd
not esi
mov eax, edx
and esi, 0x5108b4
and edx, 0xbda6e74b
not eax
or esi, ecx
and eax, 0x42081000
or eax, edx
xor eax, esi
mov esi, 0xf76dd04
mov ecx, eax
and eax, 0x3473ccfd
not ecx
and ecx, 0xcb8c3302
or eax, ecx
mov ecx, eax
mov edx, eax
and eax, 0x4c72e390
not ecx
and edx, 0xfffffffe
and ecx, 0xb38d1c6f
or eax, ecx
mov ecx, edx
xor eax, 0x4c72e391
and ecx, eax
xor eax, edx
or eax, ecx
mov ecx, eax
or eax, 0x14b03814
not ecx
and eax, 0xd4f0f897
mov edx, ecx
and ecx, 0xa090048
or edx, 0xca49c0cb
or ecx, eax
mov eax, edx
and edx, 0xd4f0f897
not eax
and eax, 0x21060720
or eax, edx
xor eax, ecx
mov ecx, eax
and eax, 0xca49c0cb
not ecx
and ecx, 0x35b63f34
or eax, ecx
mov ecx, eax
and eax, 0x9f2aa929
not ecx
and ecx, 0x60d556d6
or ecx, eax
mov eax, dword [0x42df64]
xor ecx, 0x9f2aa929
cmp ecx, 0xffffffff
setne cl
sete dl
cmp eax, 9
setg ch
cmp eax, 0xa
setl al
and ch, dl
mov ah, al
and cl, al
or al, dl
or ch, cl
xor ah, dl
xor al, 1
or al, ah
mov cl, ch
xor cl, al
xor al, 1
mov edx, eax
or al, ch
xor cl, 1
xor al, 1
xor dl, ch
or al, cl
mov ecx, eax
xor cl, dl
test al, 1
mov eax, 0x5bff5ba3
cmovne eax, esi
test dl, dl
mov edx, 0x5bff5ba3
cmove eax, esi
test cl, 1
cmove eax, edx
cmp eax, 0x4ce0f863
jle 0x4056cb
jmp 0x405a00
lea ecx, [ebp - 0x28]
call fcn.00406c00
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040f7b3
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret