Function at 0x41f8c0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f8
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0xf9161f05
mov byte [esp + 0x144], 0xe4
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov ecx, 0x574fe0a8
mov edx, 0x57
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x574fdf68]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
mov esi, ebx
not esi
add ebx, 0xb7
and esi, 1
or ebx, 1
add ebx, esi
mov byte [esp + ecx - 0x574fdf68], bl
inc ecx
dec edx
cmp ecx, 0x574fe0b0
jne 0x41f920
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41f97b
lea edx, [esp + 0x141]
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f970
mov byte [esi], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea edi, [esp + 0x38]
xor ebx, ebx
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.004223a0
add esp, 0x18
test al, al
je 0x4200bd
mov edx, esi
mov dword [esp + 0x140], 0x89f1e3e0
mov byte [esp + 0x144], 0xac
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9c
xor cl, byte [esp + eax + 0x140]
add cl, 0xf4
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0xa
jne 0x41fa00
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fa3b
lea ecx, [esp + 0x141]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fa30
mov esi, edx
mov byte [edx], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], 0x63e0249
mov dword [esp + 0x144], 0x2d220f28
mov dword [esp + 0x148], 0x43572e05
mov dword [esp + 0x14c], 0x40414243
mov dword [esp + 0x150], 0x363f5d10
mov dword [esp + 0x154], 0x4d3a3c36
mov dword [esp + 0x158], 0x4c4d4e4f
mov dword [esp + 0x15c], 0xb4a9e1de
mov dword [esp + 0x160], 0xdebbeebb
mov dword [esp + 0x164], 0xe0e0c2b3
mov dword [esp + 0x168], 0xc2a9d4b4
mov dword [esp + 0x16c], 0xbbd0ddfa
mov dword [esp + 0x170], 0xbccefeb0
mov dword [esp + 0x174], 0xfcfdbeb2
mov dword [esp + 0x178], 0xf3a9b6f7
mov dword [esp + 0x17c], 0x90919293
mov dword [esp + 0x180], 0xc6f3fdfb
mov dword [esp + 0x184], 0x988de49d
mov dword [esp + 0x188], 0x9c97f5e8
mov dword [esp + 0x18c], 0x99818283
mov dword [esp + 0x190], 0x8485868a
mov dword [esp + 0x194], 0xd6ff928b
mov dword [esp + 0x198], 0x979afa96
mov dword [esp + 0x19c], 0x85e68582
mov dword [esp + 0x1a0], 0xf4f5f6f7
mov dword [esp + 0x1a4], 0x9eeee297
mov dword [esp + 0x1a8], 0x91fbaeff
mov dword [esp + 0x1ac], 0xe0f584fb
mov dword [esp + 0x1b0], 0xe4e5e6e7
mov dword [esp + 0x1b4], 0xe4e9eaeb
mov dword [esp + 0x1b8], 0xeabfbafb
mov dword [esp + 0x1bc], 0xd0d1d2d3
mov dword [esp + 0x1c0], 0xbfa1b085
mov dword [esp + 0x1c4], 0xc38acedb
mov byte [esp + 0x1c8], 0x18
mov dword [esp + 0x1c9], 0
mov eax, 0x167ba464
nop
movzx ecx, byte [esp + eax - 0x167ba324]
xor ecx, eax
add ecx, 0x7a072ddd
mov edx, ecx
and edx, 0x2f
xor ecx, 0x2f
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x167ba324], cl
inc eax
cmp eax, 0x167ba4f1
jne 0x41fbf0
mov dword [esp + 0x78], 0x1426362a
mov dword [esp + 0x7c], 0xbc69cb8c
mov dword [esp + 0x80], 0x91a86c2c
mov dword [esp + 0x84], 0x8d8a8b88
mov dword [esp + 0x88], 0xf91a8e0b
mov dword [esp + 0x8c], 0x9d917838
mov dword [esp + 0x90], 0xf9868784
mov dword [esp + 0x94], 0x45ea0040
mov dword [esp + 0x98], 0x50a63b79
mov dword [esp + 0x9c], 0xc9ce365e
mov dword [esp + 0xa0], 0xd5cacbc8
mov dword [esp + 0xa4], 0xd1d6d7d4
mov dword [esp + 0xa8], 0x6456465a
mov dword [esp + 0xac], 0x1e5aabfc
mov dword [esp + 0xb0], 0xde1b5fda
mov dword [esp + 0xb4], 0xdddadbd8
mov dword [esp + 0xb8], 0x69fe8c64
mov dword [esp + 0xbc], 0xd5b6972b
mov dword [esp + 0xc0], 0xc95d286c
mov dword [esp + 0xc4], 0x95cacbc8
mov dword [esp + 0xc8], 0xc1cecfd4
mov dword [esp + 0xcc], 0x833f7bc0
mov dword [esp + 0xd0], 0x873b7fa4
mov dword [esp + 0xd4], 0xcbc78360
mov dword [esp + 0xd8], 0x313e3f3c
mov dword [esp + 0xdc], 0x5176cc8c
mov dword [esp + 0xe0], 0x59cd8c34
mov dword [esp + 0xe4], 0x2dac1290
mov dword [esp + 0xe8], 0x212e2f2c
mov dword [esp + 0xec], 0x9d222320
mov dword [esp + 0xf0], 0x6e272ddf
mov dword [esp + 0xf4], 0x1d1a1b18
mov dword [esp + 0xf8], 0x75a2e2a4
mov dword [esp + 0xfc], 0x3641ab10
mov byte [esp + 0x100], 0x14
mov dword [esp + 0x101], 0
mov eax, 0x3cb47525
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3cb474ad]
xor ecx, eax
mov edx, 1
sub edx, ecx
add ecx, 0x46
and edx, 6
and ecx, 0xf9
sub ecx, edx
add cl, 7
mov byte [esp + eax - 0x3cb474ad], cl
inc eax
cmp eax, 0x3cb475b2
jne 0x41fdb0
lea eax, [esp + 0x140]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
push edi
call fcn.00440550
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x4200cc
mov dword [esp + 0x140], 0xfb146b18
mov byte [esp + 0x144], 0xe0
mov dword [esp + 0x145], 0
mov eax, 0x1dfec3a9
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x1dfec269]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0xb2
mov byte [esp + eax - 0x1dfec269], cl
inc eax
cmp eax, 0x1dfec3b2
jne 0x41fe40
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fe9b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fe90
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.00440550
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x4200cc
mov edi, esi
mov dword [esp + 0x140], 0x218c8496
mov byte [esp + 0x144], 0x14
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0xe
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 8
mov edx, eax
and edx, 0x17
sub edx, esi
xor dl, byte [esp + eax + 0x132]
add dl, 0xe2
mov byte [esp + eax + 0x132], dl
inc eax
dec ecx
cmp eax, 0x19
jne 0x41ff10
movzx eax, byte [esp + 0x140]
test al, al
je 0x41ff5b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff50
mov byte [edi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.0043f8b0
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x420cda
mov ebx, edi
mov dword [esp + 0x140], 0x21ab27b3
mov dword [esp + 0x144], 0xddbe23bf
mov dword [esp + 0x148], 0xd941df45
mov dword [esp + 0x14c], 0xd545db0e
mov dword [esp + 0x150], 0xd149d75c
lea eax, [esp + 0x154]
mov word [esp + 0x154], 0xd3d0
mov dword [esp + 0x156], 0
mov word [esp + 0x15a], 0
mov ecx, 0x8cd4879
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x8cd4739]
xor edx, ecx
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xa2
mov byte [esp + ecx - 0x8cd4739], dl
inc ecx
cmp ecx, 0x8cd4895
jne 0x41fff0
lea edi, [esp + 0x2de]
lea edx, [esp + 0x140]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x2f2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x31929599
mov byte [esp + 0x144], 0x3c
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x8a
xor cl, byte [esp + eax + 0x140]
add cl, 0x4e
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 8
jne 0x420070
movzx eax, byte [esp + 0x140]
test al, al
mov edi, ebx
je 0x4200db
lea ecx, [esp + 0x141]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4200b0
jmp 0x4200dd
mov edi, esi
mov dword [esp + 0xc], 0
jmp 0x420d0e
mov dword [esp + 0xc], 0
mov edi, esi
jmp 0x420d0e
xor ebx, ebx
mov byte [edi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x420cda
mov dword [esp + 0xc], 0
lea esi, [esp + 0x38]
jmp 0x420145
mov dword [esp + 4], edx
push dword [esp + 0x34]
call fcn.00404930
add esp, 4
mov eax, dword [esp + 0xc]
and al, 1
or al, byte [esp + 4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x420ce4
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040ca60
add esp, 0xc
xor eax, eax
jmp 0x420192
lea esi, [esp + 0x38]
mov eax, dword [esp + 8]
inc eax
cmp eax, 0xb
je 0x4203b0
mov dword [esp + 8], eax
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x18]
call fcn.0043f6e0
test eax, eax
js 0x420184
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x60], cl
sete al
xor al, 0x31
mov byte [esp + 0x61], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x62], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x63], al
mov word [esp + 0x64], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + eax], cl
movzx ecx, byte [esp + eax + 0x61]
inc eax
test cl, cl
jne 0x420210
mov esi, edi
mov byte [edi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x420390
cmp byte [esp + 0x210], 0
mov edi, dword [esp + 0x180]
mov ebx, dword [esp + 0x184]
jne 0x420255
mov edx, edi
or edx, ebx
je 0x420390
cmp byte [esp + 0x2d0], 0
jne 0x42026a
xor edi, 1
or edi, ebx
je 0x420390
add esi, eax
mov dword [esp + 0x78], 0x214f58b3
mov byte [esp + 0x7c], 0x34
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x36
xor cl, byte [esp + eax + 0x78]
add cl, 0xf2
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 8
jne 0x420290
movzx eax, byte [esp + 0x78]
test al, al
je 0x4202cb
lea ecx, [esp + 0x79]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4202c0
mov edi, esi
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0xdcdddedf
mov dword [esp + 0x7c], 0
mov eax, 0xaf
lea ecx, [esp + 0x78]
xor ebx, ebx
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
lea esi, [eax - 0x7cea7800]
or esi, edx
and edx, eax
not esi
or esi, edx
mov edx, esi
or edx, 0x6f
add edx, esi
not esi
or esi, 0x6f
add edx, esi
add dl, 2
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0xa7
jne 0x420300
mov eax, dword [0x45064c]
test eax, eax
je 0x420180
mov ecx, dword [esp + 0x78]
xor edx, edx
mov esi, dword [0x450650]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x3568c09b
je 0x420363
inc edx
cmp eax, edx
jne 0x420350
jmp 0x420180
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x420180
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x450654]
push eax
call fcn.00441b40
add esp, 0x14
jmp 0x420180
mov edi, esi
add edi, eax
xor ebx, ebx
lea esi, [esp + 0x38]
test cl, cl
jne 0x4203c0
jmp 0x42012e
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x42012e
mov dword [esp + 8], edi
call fcn.00404af0
mov dword [esp + 0x34], eax
push eax
call fcn.00404720
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x78], 0x214b4741
mov byte [esp + 0x7c], 0x34
mov dword [esp + 0x7d], 0
mov eax, 0xdb960bb6
mov ecx, 0x2469f4d8
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x2469f4c2]
mov esi, eax
and esi, edi
add esi, esi
mov edx, edi
sub edx, esi
add edx, eax
add edx, 0x71
mov ebx, esi
sub ebx, edi
add ebx, ecx
or ebx, 1
or edx, 1
add edx, ebx
add edx, edi
sub edx, esi
add edx, eax
add dl, 0x72
mov byte [esp + eax + 0x2469f4c2], dl
inc eax
dec ecx
cmp eax, 0xdb960bbf
jne 0x420400
movzx eax, byte [esp + 0x78]
test al, al
je 0x420460
lea ecx, [esp + 0x79]
mov edx, dword [esp + 8]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420450
jmp 0x420464
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
mov byte [edx], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [eax + ecx]
movzx esi, word [esp + ecx + 0x2de]
test di, di
je 0x420499
add ecx, 2
cmp di, si
je 0x420480
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x420500
mov dword [esp + 4], eax
lea ecx, [esp + 0x38]
push 0
push 0
push 0x40
lea eax, [esp + 0x84]
push eax
push edx
push dword [esp + 0x18]
call fcn.0043f6e0
test eax, eax
js 0x420512
xor eax, eax
cmp di, si
sete al
lea esi, [esp + 0x38]
mov ecx, esi
lea edx, [esp + 0x78]
push eax
push dword [esp + 0x34]
call fcn.00422ea0
add esp, 8
mov edi, dword [esp + 8]
jmp 0x42051c
mov dword [esp + 4], 0
mov edi, dword [esp + 8]
lea esi, [esp + 0x38]
jmp 0x420520
xor eax, eax
mov edi, dword [esp + 8]
lea esi, [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0x997c4479
mov byte [esp + 0x7c], 0xe4
lea eax, [esp + 0x7d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
mov ecx, ebx
add cl, bl
and cl, 0xe0
mov edx, eax
add dl, al
and dl, 0xf0
add dl, cl
movzx ecx, dl
add ecx, eax
xor cl, byte [esp + eax + 0x78]
xor cl, 0x58
add cl, 0x48
mov byte [esp + eax + 0x78], cl
inc eax
add ebx, 2
cmp eax, 0xc
jne 0x420540
movzx eax, byte [esp + 0x78]
test al, al
je 0x420590
lea ecx, [esp + 0x79]
xor ebx, ebx
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420580
jmp 0x420592
xor ebx, ebx
mov byte [edi], 0
push dword [esp + 0x30]
call fcn.004048f0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x420110
mov dword [esp + 0x30], eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043f6e0
test eax, eax
js 0x420800
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea edi, [esp + 0x11c]
push edi
push edx
push eax
call fcn.0043f6e0
test eax, eax
js 0x420800
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 0x18
lea esi, [esp + 0x6c]
push esi
push edx
push eax
call fcn.0043f6e0
test eax, eax
js 0x420800
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
js 0x42073e
mov dword [esp + 0x10], 0xc15bc77b
mov dword [esp + 0x14], 0xcd50c36f
mov dword [esp + 0x18], 0xc902cf2c
mov dword [esp + 0x1c], 0xb556cb6b
mov dword [esp + 0x20], 0xb112b717
mov word [esp + 0x24], 0xb3b0
lea eax, [esp + 0x26]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x8841e931
mov ecx, 0x77be16ce
nop
movzx esi, byte [esp + eax + 0x77be16df]
lea edx, [esi + esi]
not edx
add edx, esi
lea edi, [ecx - 0x77be1600]
and edi, esi
lea esi, [edx + edx]
not esi
add esi, edx
and edx, eax
or edi, edx
or esi, ecx
not esi
or esi, edi
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
add dl, 0xa
mov byte [esp + eax + 0x77be16df], dl
inc eax
dec ecx
cmp eax, 0x8841e94d
jne 0x4206b0
movzx esi, word [esp + 0x10]
test si, si
je 0x42078d
lea eax, [esp + 0x10]
mov ecx, dword [esp + 4]
mov edx, ecx
jmp 0x420718
movzx esi, word [eax]
test si, si
je 0x420797
movzx edi, word [edx]
test di, di
je 0x4207d7
add edx, 2
add eax, 2
lea ebx, [ecx + 2]
cmp di, si
je 0x420736
mov ecx, ebx
mov edx, ebx
je 0x420710
lea eax, [esp + 0x10]
jmp 0x420710
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, esi
or eax, edi
je 0x420800
mov eax, dword [esp + 0x68]
lea ebx, [eax*2 + 2]
inc eax
mov eax, ebx
jns 0x420765
mov eax, 0xffffffff
push eax
call fcn.0040c8d0
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push ebx
mov dword [esp + 0x10], eax
push eax
push edi
push esi
call fcn.0043f6e0
test eax, eax
jns 0x420666
jmp 0x420800
mov ecx, dword [esp + 4]
lea edx, [esp + 0x78]
jmp 0x4207a1
lea edx, [esp + 0x78]
mov ebx, edx
test ecx, ecx
je 0x4207dd
movzx esi, word [ecx + 0x14]
mov ebx, edx
test si, si
je 0x4207dd
lea eax, [ecx + 0x14]
mov edx, 0x14
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp si, 0x5c
je 0x420bac
movzx esi, word [ecx + edx + 2]
add edx, 2
test si, si
jne 0x4207c0
lea edx, [esp + 0x78]
mov ebx, edx
cmp byte [esp + 0x77], 0
jns 0x4207f4
push dword [esp + 4]
call fcn.0040c8e0
lea edx, [esp + 0x7c]
add esp, 4
cmp edx, ebx
jne 0x4208c6
nop
nop
nop
nop
mov dword [esp + 0x10], 0xd160cf07
mov dword [esp + 0x14], 0xd563d375
mov dword [esp + 0x18], 0xd978d77d
mov dword [esp + 0x1c], 0xdd6edb73
mov dword [esp + 0x20], 0xa1dedf6d
mov word [esp + 0x24], 0
mov edx, 0xf8c9b02d
mov edi, 0xd2
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x7364fe3]
mov ebx, edi
xor ebx, edx
and ebx, eax
mov esi, eax
xor ebx, edx
not ebx
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x1f
mov byte [esp + edx + 0x7364fe3], al
inc edx
dec edi
cmp edx, 0xf8c9b043
jne 0x420840
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x78]
mov ebx, edx
test ax, ax
je 0x4208c1
lea ecx, [esp + 0x12]
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4208b0
mov word [ebx], 0
mov esi, ebx
sub esi, edx
mov ecx, esi
shr ecx, 2
mov eax, edx
mov edx, dword [esp + 8]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
and ecx, 0xfffffffc
lea eax, [edx + ecx]
lea edx, [esp + ecx]
add edx, 0x78
mov dword [esp + 4], esi
mov ecx, esi
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x420912
mov ecx, dword [esp + 4]
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [eax + ecx], dl
push 0xa
push 0xb
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x3c]
call fcn.00422c80
add esp, 0x10
mov dword [esp + 0x10], 0x5bafadf6
mov dword [esp + 0x14], 0xc3e290ec
mov dword [esp + 0x18], 0
mov ecx, 0x659106d2
mov edx, 0x9a6ef92d
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x659106c2]
mov ebx, ecx
and ebx, esi
add ebx, ebx
mov edi, edx
sub edi, esi
add esi, ecx
and edi, ebx
not ebx
and ebx, esi
sub ebx, edi
add bl, 0xe6
mov byte [esp + ecx - 0x659106c2], bl
inc ecx
dec edx
cmp ecx, 0x659106de
jne 0x420950
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x4209ab
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4209a0
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4209cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4209c0
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4209e0
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420a00
mov eax, 0xffffffff
jmp 0x420a09
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c8d0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x420a41
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420a30
mov dword [esp + 0x30], eax
inc esi
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x81508775
mov dword [esp + 0x14], 0x8d3b832f
mov dword [esp + 0x18], 0x89328f7a
mov dword [esp + 0x1c], 0x95368b30
mov word [esp + 0x20], 0x9794
mov dword [esp + 0x22], 0
mov eax, 0xdf9372e1
mov edx, 0x1e
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x206c8d2f]
mov edi, esi
not edi
mov ecx, eax
and ecx, edi
lea ebx, [ecx + ecx]
not ebx
add ebx, ecx
and ecx, 0x11827064
and ebx, 0xce31839b
or ebx, ecx
or edi, edx
xor ebx, 0xce31839b
add esi, edi
inc esi
or esi, ebx
mov ecx, esi
not ecx
and ecx, 0xc6
mov edi, esi
and edi, 0x39
sub edi, ecx
and esi, 1
xor edi, 1
lea ecx, [edi + esi*2]
add cl, 0x60
mov byte [esp + eax + 0x206c8d2f], cl
inc eax
dec edx
cmp eax, 0xdf9372f7
jne 0x420a90
mov eax, dword [esp + 4]
add eax, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x420b23
lea edx, [esp + 0x7a]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420b10
jmp 0x420b25
xor ebx, ebx
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420b51
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420b40
mov word [eax], 0
mov esi, 0xffffffff
push dword [esp + 0x34]
call fcn.00405710
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x420b70
mov ecx, dword [ebp + 8]
push esi
push edi
mov esi, dword [esp + 0x38]
push esi
call fcn.0040d450
mov dword [esp + 4], eax
push edi
call fcn.004057a0
add esp, 4
push esi
call fcn.0040c8e0
add esp, 4
mov edi, dword [esp + 8]
lea esi, [esp + 0x38]
jmp 0x420114
lea ebx, [esp + 0x78]
cmp edx, 0x14
je 0x420c1e
lea ecx, [edx - 0x14]
sar ecx, 1
test dl, 2
jne 0x420bc9
lea edi, [esp + 0x78]
lea ebx, [esp + 0x7a]
jmp 0x420beb
mov esi, edx
sub esi, ecx
add esi, 0xffffffeb
movzx ecx, word [eax]
xor ebx, ebx
test cx, cx
setne bl
lea eax, [eax + ebx*2]
mov word [esp + 0x78], cx
lea ebx, [esp + 0x7a]
mov edi, ebx
mov ecx, esi
cmp edx, 0x16
je 0x420c1e
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi], dx
lea edx, [eax + ebx*2]
movzx esi, word [eax + ebx*2]
xor eax, eax
test si, si
setne al
lea eax, [edx + eax*2]
mov word [edi + 2], si
add edi, 4
add ecx, 0xfffffffe
jne 0x420bf0
mov ebx, edi
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
je 0x420c36
lea edx, [esp + 0x78]
jmp 0x4207dd
mov dword [esp + 0x10], 0x93db91f0
mov dword [esp + 0x14], 0x9f3d9d0a
mov dword [esp + 0x18], 0x9b35990f
mov dword [esp + 0x1c], 0x872f8512
mov dword [esp + 0x20], 0x8315811c
mov word [esp + 0x24], 0x8d8c
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
xor esi, esi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x10]
mov eax, esi
and eax, 8
mov edi, ecx
xor edi, 0x24
add edi, eax
lea eax, [edx + edx]
not eax
add eax, edx
xor eax, edx
and eax, edi
xor eax, edx
add al, 0x4c
mov byte [esp + ecx + 0x10], al
inc ecx
add esi, 2
cmp ecx, 0x19
jne 0x420c80
movzx eax, word [esp + 0x10]
test ax, ax
lea edx, [esp + 0x78]
je 0x420cd0
lea ecx, [esp + 0x12]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420cbf
mov word [ebx], 0
jmp 0x4207dd
mov dword [esp + 0xc], 0
jmp 0x420d0e
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
and cl, 1
mov dword [esp + 0xc], ecx
test eax, eax
je 0x420d0e
cmp eax, dword [esp + 0x50]
je 0x420d0e
push eax
call fcn.0040c8e0
add esp, 4
mov dword [esp + 0x4c], 0
lea ecx, [esp + 0x38]
call fcn.0043ed50
mov dword [esp + 0x140], 0xdbbab7ab
mov byte [esp + 0x144], 0xd0
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor eax, eax
nop
movzx edx, byte [esp + eax + 0x140]
mov esi, ebx
and esi, 0x1a
mov ecx, eax
xor ecx, 0x2cdf26cd
add ecx, esi
xor ecx, edx
add ecx, 0x1fa43dfe
mov edx, ecx
xor edx, 0x34
and ecx, 0x4b
add ecx, ecx
sub ecx, edx
add cl, 0x35
mov byte [esp + eax + 0x140], cl
inc eax
add ebx, 2
cmp eax, 0xa
jne 0x420d40
movzx eax, byte [esp + 0x140]
test al, al
je 0x420dab
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420da0
mov byte [edi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret