Function at 0x41f560
Capabilities:
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 dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0x315a5b6d
mov byte [esp + 0x144], 0xcc
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor esi, esi
mov eax, 0x73e1a94d
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov ebx, dword [esp + 4]
and ebx, 4
lea edi, [eax + ebx]
mov eax, ecx
xor eax, 0x73e1a94d
mov esi, ecx
or esi, 2
and esi, eax
sub edi, esi
sub edi, esi
movzx edx, byte [esp + ecx + 0x140]
or edi, edx
lea eax, [edi + esi*2]
sub eax, edx
add eax, ecx
sub eax, ebx
mov esi, dword [esp + 4]
add eax, 0x8c1e56b2
and eax, edi
mov edx, eax
not edx
and edx, 5
xor eax, 0x7a
lea eax, [eax + edx*2]
inc al
mov byte [esp + ecx + 0x140], al
mov eax, dword [esp + 8]
inc ecx
add esi, 2
dec eax
cmp ecx, 0xb
jne 0x41f5c0
mov edi, dword [ebp + 0xc]
mov esi, dword [edi]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41f64b
lea edx, [esp + 0x141]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f640
mov byte [esi], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x34]
xor ebx, ebx
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push dword [ebp + 0x10]
push dword [eax + 0xc]
call fcn.00421e80
add esp, 0x18
test al, al
je 0x420a41
mov ebx, edi
mov dword [esp + 0x140], 0xcbab5554
mov byte [esp + 0x144], 0xc0
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
xor eax, eax
xor edi, edi
nop
nop
nop
nop
nop
nop
mov edx, edi
and edx, 2
mov ecx, eax
xor ecx, 0xd1
add ecx, edx
xor cl, byte [esp + eax + 0x140]
add cl, 0xeb
mov byte [esp + eax + 0x140], cl
inc eax
add edi, 2
cmp eax, 0xc
jne 0x41f6d0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f71d
lea ecx, [esp + 0x141]
mov edi, ebx
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f710
jmp 0x41f71f
mov edi, ebx
mov byte [esi], 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], 0xe3a0a57
mov dword [esp + 0x144], 0x2726012c
mov dword [esp + 0x148], 0x41512603
mov dword [esp + 0x14c], 0x4c4b4a49
mov dword [esp + 0x150], 0x3e395b1c
mov dword [esp + 0x154], 0x473e302a
mov dword [esp + 0x158], 0xb8474645
mov dword [esp + 0x15c], 0xb8b3e7e2
mov dword [esp + 0x160], 0xd6c5f6c1
mov dword [esp + 0x164], 0xfce4dac9
mov dword [esp + 0x168], 0xc2a3d0b0
mov dword [esp + 0x16c], 0xb9d4c3fe
mov dword [esp + 0x170], 0xa8cae6bc
mov dword [esp + 0x174], 0xf0f7b6b6
mov dword [esp + 0x178], 0xd1a3aeed
mov dword [esp + 0x17c], 0x9c9b9a99
mov dword [esp + 0x180], 0xcefdfbc1
mov dword [esp + 0x184], 0x9487f893
mov dword [esp + 0x188], 0x8891f3e4
mov dword [esp + 0x18c], 0x9b8b8a89
mov dword [esp + 0x190], 0x808f8ef6
mov dword [esp + 0x194], 0xcef18a81
mov dword [esp + 0x198], 0xed96f292
mov dword [esp + 0x19c], 0x8fea8b86
mov dword [esp + 0x1a0], 0xf0fffefd
mov dword [esp + 0x1a4], 0x96e2faad
mov dword [esp + 0x1a8], 0xb3f5a6f5
mov dword [esp + 0x1ac], 0xecff88e1
mov dword [esp + 0x1b0], 0xe0efeeed
mov dword [esp + 0x1b4], 0x98e3e2e1
mov dword [esp + 0x1b8], 0xdab9b2f1
mov dword [esp + 0x1bc], 0xdcdbdad9
mov dword [esp + 0x1c0], 0xb5abbc83
mov dword [esp + 0x1c4], 0xc18ec6d1
mov byte [esp + 0x1c8], 0x14
mov word [esp + 0x1cd], 0
mov dword [esp + 0x1c9], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x65
xor cl, byte [esp + eax + 0x140]
add cl, 7
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0x8f
jne 0x41f8e0
mov dword [esp + 0x60], 0xd89e9292
mov dword [esp + 0x64], 0x8db7d20
mov dword [esp + 0x68], 0x370cd898
mov dword [esp + 0x6c], 0x5b5a5d5c
mov dword [esp + 0x70], 0x6f9a5ad5
mov dword [esp + 0x74], 0xb13ecac
mov dword [esp + 0x78], 0x6f6e6160
mov dword [esp + 0x7c], 0xa31ae4a4
mov dword [esp + 0x80], 0x945e25e7
mov dword [esp + 0x84], 0x27263a96
mov dword [esp + 0x88], 0x2b2a2524
mov dword [esp + 0x8c], 0x2f2e2928
mov dword [esp + 0x90], 0x88cea2a2
mov dword [esp + 0x94], 0x8aca3d70
mov dword [esp + 0x98], 0x299c952
mov dword [esp + 0x9c], 0xb0a0d0c
mov dword [esp + 0xa0], 0xdf7638c0
mov dword [esp + 0xa4], 0x133ed99d
mov dword [esp + 0xa8], 0x1fe784d8
mov dword [esp + 0xac], 0x331a1d1c
mov dword [esp + 0xb0], 0x27261970
mov dword [esp + 0xb4], 0xe9b5ed24
mov dword [esp + 0xb8], 0xfdb9e900
mov dword [esp + 0xbc], 0xb1bde504
mov dword [esp + 0xc0], 0x37362928
mov dword [esp + 0xc4], 0x1ffea0e0
mov dword [esp + 0xc8], 0x2fb7f830
mov dword [esp + 0xcc], 0x3bb076f4
mov dword [esp + 0xd0], 0xc7c63938
mov dword [esp + 0xd4], 0xbc2c5c4
mov dword [esp + 0xd8], 0xd2cdc749
mov dword [esp + 0xdc], 0xcbcacdcc
mov dword [esp + 0xe0], 0xfb025e00
mov dword [esp + 0xe4], 0xb2e31dd4
mov byte [esp + 0xe8], 0xd0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe9], 0
mov eax, 0x18cb760e
nop
movzx ecx, byte [esp + eax - 0x18cb75ae]
xor ecx, eax
mov edx, ecx
not edx
and ecx, 0xb9
and edx, 0x46
sub ecx, edx
mov byte [esp + eax - 0x18cb75ae], cl
inc eax
cmp eax, 0x18cb769e
jne 0x41fa80
lea eax, [esp + 0x140]
lea edx, [esp + 0x60]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea eax, [esp + 0x40]
push eax
call fcn.0043d4e0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x420a3f
mov edi, esi
mov dword [esp + 0x140], 0x91383d2c
mov byte [esp + 0x144], 0x8c
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 2
mov ecx, 0x9d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x8b
mov edx, eax
and edx, 0x14
or edx, esi
xor dl, byte [esp + eax + 0x13e]
xor dl, 0xeb
add dl, 0x16
mov byte [esp + eax + 0x13e], dl
inc eax
dec ecx
cmp eax, 0xd
jne 0x41fb20
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fb6d
lea ecx, [esp + 0x141]
mov esi, edi
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fb60
jmp 0x41fb6f
mov esi, edi
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0043d4e0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
mov edi, ebx
je 0x420a3f
mov dword [esp + 0x140], 0x41fce4f6
mov byte [esp + 0x144], 0x54
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0x4c6daeee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x4c6dadae]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x5a
mov byte [esp + eax - 0x4c6dadae], cl
inc eax
cmp eax, 0x4c6daef9
jne 0x41fbe0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fc2b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fc20
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.0043c980
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x420a3f
mov dword [esp + 8], esi
mov dword [esp + 0x140], 0x89078b3f
mov dword [esp + 0x144], 0x853a8733
mov dword [esp + 0x148], 0x8139833d
mov dword [esp + 0x14c], 0x9d259f72
mov dword [esp + 0x150], 0x99219b14
lea eax, [esp + 0x154]
mov dword [esp + 4], eax
mov word [esp + 0x154], 0x9798
mov dword [esp + 0x156], 0
mov byte [esp + 0x15a], 0
mov ecx, 0xe3
mov edx, 0x1c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x5d]
mov ebx, ecx
xor ebx, edx
and ebx, esi
xor ebx, edx
mov al, 0x90
sub al, bl
mov byte [esp + ecx + 0x5d], al
inc ecx
dec edx
cmp ecx, 0xfe
jne 0x41fcd0
lea edi, [esp + 0x2de]
lea eax, [esp + 0x140]
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x2f2]
mov ecx, 1
mov eax, dword [esp + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x27c6c7c3
mov byte [esp + 0x144], 0x28
mov dword [esp + 0x145], 0
mov eax, 0xf7
mov ecx, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x49]
mov esi, ecx
or esi, edx
not edx
or edx, eax
and edx, esi
mov bl, 0x2c
sub bl, dl
mov byte [esp + eax + 0x49], bl
inc eax
dec ecx
cmp eax, 0x100
jne 0x41fd50
movzx eax, byte [esp + 0x140]
test al, al
mov esi, dword [esp + 8]
je 0x41fd9d
lea ecx, [esp + 0x141]
mov edi, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fd90
jmp 0x41fda0
mov edi, dword [ebp + 0xc]
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x420a3f
mov dword [esp + 0x30], 0
lea ebx, [esp + 0x34]
jmp 0x41fdef
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x420ada
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040ca70
add esp, 0xc
xor eax, eax
jmp 0x41fe34
mov esi, ebx
lea ebx, [esp + 0x34]
mov eax, dword [esp + 4]
inc eax
cmp eax, 0xb
je 0x4200a0
mov dword [esp + 4], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.0043c800
test eax, eax
js 0x41fe26
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x14], cl
sete al
xor al, 0x31
mov byte [esp + 0x15], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x16], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x17], al
mov word [esp + 0x18], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x15]
inc eax
test cl, cl
jne 0x41feb0
mov ebx, esi
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x420080
cmp byte [esp + 0x210], 0
mov edi, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
jne 0x41fef5
mov edx, edi
or edx, esi
je 0x420080
cmp byte [esp + 0x2d0], 0
jne 0x41ff0a
xor edi, 1
or edi, esi
je 0x420080
add ebx, eax
mov dword [esp + 0x60], 0x27858c9d
mov byte [esp + 0x64], 0x28
lea eax, [esp + 0x65]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xc7
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x67]
mov esi, eax
and esi, ecx
mov edi, esi
and edi, 0xffffffdd
mov edx, esi
or edx, 0xfd
inc edx
imul edx, edi
mov edi, esi
and edi, 2
or esi, 2
imul esi, edi
lea edi, [eax - 0x7561bd00]
sub edx, esi
mov esi, edi
and esi, ecx
xor edi, ecx
lea ecx, [edi + esi*2]
add ecx, edx
add cl, 0x1d
mov byte [esp + eax - 0x67], cl
inc eax
cmp eax, 0xd1
jne 0x41ff30
movzx eax, byte [esp + 0x60]
test al, al
je 0x41ffa0
lea ecx, [esp + 0x61]
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff90
jmp 0x41ffa2
mov edx, ebx
mov ebx, edx
mov byte [edx], 0
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xff676980
mov dword [esp + 0xf0], 0x54554a4b
mov eax, 0xe63abe6e
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x19c54282]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0xda47d9
xor ecx, 0x80da47d9
lea esi, [ecx + edx*2]
mov edi, 0x37
sub edi, esi
lea ecx, [ecx + edx*2]
add ecx, 8
and edi, 0xc7
and ecx, 0x38
sub ecx, edi
mov byte [esp + eax + 0x19c54282], cl
inc eax
cmp eax, 0xe63abe72
jne 0x41ffd0
mov eax, dword [0x44e804]
test eax, eax
je 0x41fe20
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov esi, dword [0x44e808]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x3568c09b
je 0x420053
inc edx
cmp eax, edx
jne 0x420040
jmp 0x41fe20
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x41fe20
lea ecx, [esp + 0x60]
push ecx
push 0
push 2
push eax
push dword [0x44e80c]
call fcn.0043eb30
add esp, 0x14
jmp 0x41fe20
mov esi, ebx
add esi, eax
lea ebx, [esp + 0x34]
test cl, cl
jne 0x4200b0
jmp 0x41fdd0
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x41fdd0
mov dword [esp + 8], esi
call fcn.00404b30
mov dword [esp + 0x44], eax
push eax
call fcn.00404760
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x60], 0x1ff1f5fb
mov byte [esp + 0x64], 8
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x2eba5fe7
mov ecx, 0x5d74bfce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x2eba5f87]
mov esi, ecx
and esi, 0x50640286
mov edi, eax
xor edi, 0xe9730143
add edi, esi
mov esi, 0x2eba5fe6
sub esi, edi
mov ebx, 0xe6
sub ebx, edi
mov edi, edx
not edi
or edi, ebx
or esi, edx
add edx, edi
inc edx
not esi
or edx, esi
add edx, 0xc39d05c5
mov esi, edx
xor esi, 0x15
and edx, 0x6a
add edx, edx
sub edx, esi
inc dl
mov byte [esp + eax - 0x2eba5f87], dl
inc eax
add ecx, 2
cmp eax, 0x2eba5ff2
jne 0x420100
movzx eax, byte [esp + 0x60]
test al, al
je 0x420180
lea ecx, [esp + 0x61]
mov edx, dword [esp + 8]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420170
jmp 0x420184
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 0x4201b9
add ecx, 2
cmp di, si
je 0x4201a0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x420210
mov dword [esp + 4], eax
lea ecx, [esp + 0x34]
push 0
push 0
push 0x40
lea eax, [esp + 0x6c]
push eax
push edx
push dword [esp + 0x18]
call fcn.0043c800
test eax, eax
js 0x42021a
xor eax, eax
cmp di, si
sete al
lea ecx, [esp + 0x34]
lea edx, [esp + 0x60]
push eax
push dword [esp + 0x14]
call fcn.00422aa0
add esp, 8
jmp 0x42021c
mov dword [esp + 0xc], 0
jmp 0x420220
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x60], 0x47e8e0fb
mov byte [esp + 0x64], 0x58
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
mov ecx, 0x47e34e6e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
not edx
mov esi, ebx
shr esi, 1
and esi, 1
movzx eax, byte [esp + ebx + 0x60]
mov dword [esp + 4], eax
mov edi, ebx
and edi, 0xd
and edx, 2
imul edx, edi
mov edi, ebx
or edi, 2
imul edi, esi
lea edx, [edx + edi*2]
lea esi, [ecx + edx]
inc esi
and esi, eax
mov edi, esi
and edi, 0xfffffffd
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
xor eax, 2
imul eax, edi
sub edx, eax
sub edx, esi
add edx, ecx
add dl, byte [esp + 4]
add dl, 0xd6
mov byte [esp + ebx + 0x60], dl
inc ebx
dec ecx
cmp ebx, 0xb
jne 0x420250
movzx eax, byte [esp + 0x60]
test al, al
je 0x4202e0
lea ecx, [esp + 0x61]
mov esi, dword [esp + 8]
lea ebx, [esp + 0x34]
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 0x4202d0
jmp 0x4202e8
mov esi, dword [esp + 8]
lea ebx, [esp + 0x34]
mov byte [esi], 0
push dword [esp + 0x10]
call fcn.00404930
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 0xc]
and cl, dl
cmp cl, 1
jne 0x4204f0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043c800
test eax, eax
mov dword [esp + 8], esi
js 0x42054f
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x11c]
push edi
push edx
push eax
call fcn.0043c800
test eax, eax
js 0x42054f
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea esi, [esp + 0xfc]
push esi
push edx
push eax
call fcn.0043c800
test eax, eax
js 0x42054b
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp + 0x10], eax
js 0x4204f9
mov dword [esp + 0x14], 0x63116135
mov dword [esp + 0x18], 0x67146501
mov dword [esp + 0x1c], 0x7b3e7958
mov dword [esp + 0x20], 0x7f0a7d1d
mov dword [esp + 0x24], 0x731e7111
mov word [esp + 0x28], 0x7574
mov dword [esp + 0x2a], 0
xor eax, eax
mov ebx, 0xd46fff9e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x14]
lea esi, [eax + 0x751bffe8]
xor esi, edx
lea edi, [ebx + 0x36740079]
or edi, esi
lea ecx, [edx + edi*2]
mov dword [esp + 4], ecx
mov esi, ebx
sub esi, ecx
mov edx, esi
or edx, 1
add edx, ecx
add edx, eax
add edx, 0x2b900062
mov edi, edx
and edi, 0xfffffffd
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 4]
lea edi, [eax + ecx]
add edi, 0xab900061
and esi, 0xb2f68453
and edi, 0x4d097bac
or edi, esi
xor edi, 0xb2f68452
mov ecx, edx
and ecx, edi
xor edi, edx
lea ecx, [edi + ecx*2]
mov byte [esp + eax + 0x14], cl
inc eax
dec ebx
cmp eax, 0x1a
jne 0x420410
movzx esi, word [esp + 0x14]
test si, si
je 0x42088e
lea eax, [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, edx
jmp 0x4204bc
movzx esi, word [eax]
test si, si
je 0x420894
movzx edi, word [ecx]
test di, di
je 0x4208c3
add ecx, 2
add eax, 2
lea ebx, [edx + 2]
cmp di, si
je 0x4204da
mov edx, ebx
mov ecx, ebx
je 0x4204b0
lea eax, [esp + 0x14]
jmp 0x4204b0
mov dword [esp + 0xc], edx
jmp 0x420873
mov esi, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov eax, esi
or eax, ebx
je 0x42054b
mov eax, dword [esp + 0xf8]
lea edi, [eax*2 + 2]
inc eax
mov eax, edi
jns 0x420525
mov eax, 0xffffffff
push eax
call fcn.0040c8e0
add esp, 4
lea ecx, [esp + 0x34]
push 0
push 0
push edi
mov dword [esp + 0x1c], eax
push eax
push ebx
push esi
call fcn.0043c800
test eax, eax
jns 0x4203c5
mov esi, dword [esp + 8]
lea edi, [esp + 0x60]
mov dword [esp + 0x14], 0x97049921
mov dword [esp + 0x18], 0x9301950b
mov dword [esp + 0x1c], 0x8f1c910b
mov dword [esp + 0x20], 0x8b068d15
mov dword [esp + 0x24], 0x8786891b
mov byte [esp + 0x28], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x26
xor cl, byte [esp + eax + 0x14]
add cl, 0x42
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x15
jne 0x420590
movzx eax, word [esp + 0x14]
mov ebx, edi
test ax, ax
je 0x4205d1
lea ecx, [esp + 0x16]
mov ebx, edi
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 0x4205c0
mov word [ebx], 0
mov edx, ebx
sub edx, edi
mov ecx, edx
shr ecx, 2
mov eax, edi
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, edx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x60
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp + 4], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
mov ebx, edx
je 0x420620
mov ecx, ebx
and ecx, 2
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 4]
mov byte [eax + ecx], dl
push 0xa
push 0xb
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x18]
call fcn.004227f0
add esp, 0x10
mov dword [esp + 0x14], 0xad45bb1e
mov dword [esp + 0x18], 0x5d027400
lea ecx, [esp + 0x2a]
mov byte [ecx - 0xc], 0
mov word [ecx - 0xe], 0
mov ecx, 0x28e4efb9
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x28e4efa5]
xor edx, ecx
mov esi, edx
not esi
and esi, 0x9e
and edx, 0x61
sub edx, esi
inc dl
mov byte [esp + ecx - 0x28e4efa5], dl
inc ecx
cmp ecx, 0x28e4efc4
jne 0x420660
mov esi, dword [esp + 8]
add esi, ebx
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x4206ab
lea edx, [esp + 0x15]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4206a0
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4206cb
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 0x4206c0
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 0x4206e0
sar eax, 1
sar ebx, 1
mov ecx, eax
and ecx, ebx
xor ebx, eax
lea eax, [ebx + ecx*2]
add eax, 0xa
test eax, eax
jns 0x420706
mov eax, 0xffffffff
jmp 0x420710
lea eax, [ebx + ecx*2]
lea eax, [eax*2 + 0x14]
push eax
call fcn.0040c8e0
add esp, 4
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x420741
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420730
mov dword [esp + 4], eax
inc esi
mov dword [esp + 8], esi
mov word [ebx], 0x2f
mov dword [esp + 0x14], 0xc1b0c795
mov dword [esp + 0x18], 0xcd5bc3af
mov dword [esp + 0x1c], 0xc952cf9a
mov dword [esp + 0x20], 0xf556cb50
mov word [esp + 0x24], 0xf7f4
lea ecx, [esp + 0x2a]
mov byte [ecx], 0
mov dword [ecx - 4], 0
mov ecx, 0x4ac7b52e
lea edx, [esp + 0x14]
mov eax, ebx
nop
movzx esi, byte [edx]
lea edi, [ecx - 0x4ac7b500]
mov ebx, esi
not ebx
or ebx, edi
mov edi, ecx
or edi, esi
add ebx, esi
inc ebx
mov esi, ebx
or esi, edi
xor ebx, edi
add ebx, edi
not ebx
add ebx, esi
add bl, 0xeb
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0x4ac7b517
jne 0x420790
add eax, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x4207f3
lea edx, [esp + 0x62]
lea ebx, [esp + 0x34]
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 0x4207e0
jmp 0x4207f7
lea ebx, [esp + 0x34]
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x420821
lea edx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420810
mov word [eax], 0
mov esi, 0xffffffff
push dword [esp + 0x44]
call fcn.00405740
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x420840
mov ecx, dword [ebp + 8]
push esi
push edi
mov esi, dword [esp + 0xc]
push esi
call fcn.0040d2a0
mov dword [esp + 0xc], eax
push edi
call fcn.004057d0
add esp, 4
push esi
call fcn.0040c8f0
add esp, 4
mov esi, dword [esp + 8]
push dword [esp + 0x44]
call fcn.00404970
add esp, 4
mov eax, dword [esp + 0x30]
and al, 1
or al, byte [esp + 0xc]
jmp 0x41fdd4
mov edx, dword [esp + 0x10]
jmp 0x42089c
lea ebx, [esp + 0x60]
test edx, edx
je 0x4208c7
movzx esi, word [edx + 0x14]
lea ebx, [esp + 0x60]
test si, si
je 0x4208c7
lea eax, [edx + 0x14]
xor ecx, ecx
nop
nop
cmp si, 0x5c
je 0x4208f2
movzx esi, word [edx + ecx + 0x16]
add ecx, 2
test si, si
jne 0x4208b0
lea ebx, [esp + 0x60]
cmp byte [esp + 0x107], 0
jns 0x4208dd
push dword [esp + 0x10]
call fcn.0040c8f0
add esp, 4
lea edi, [esp + 0x60]
cmp edi, ebx
mov esi, dword [esp + 8]
jne 0x4205d6
jmp 0x420553
lea edx, [esp + 0x60]
mov ebx, edx
test ecx, ecx
je 0x4209a2
sar ecx, 1
mov edi, ecx
and edi, 3
je 0x420943
xor esi, esi
mov ebx, edx
mov dword [esp + 4], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [eax]
xor edx, edx
test di, di
setne dl
lea eax, [eax + edx*2]
mov word [ebx], di
mov edi, dword [esp + 4]
add ebx, 2
inc esi
cmp edi, esi
jne 0x420920
mov edi, ecx
sub edi, esi
jmp 0x420947
mov ebx, edx
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x4209a2
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x420950
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
jne 0x4208c7
mov dword [esp + 0x14], 0xb7ff89a8
mov dword [esp + 0x18], 0xb3ddb526
mov dword [esp + 0x1c], 0xbfd5b123
mov dword [esp + 0x20], 0xbbd3bd2e
mov dword [esp + 0x24], 0xa735b924
mov word [esp + 0x28], 0xa5a4
lea eax, [esp + 0x2a]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x1e
xor cl, byte [esp + eax + 0x14]
add cl, 0x6a
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x1b
jne 0x420a00
movzx eax, word [esp + 0x14]
test ax, ax
je 0x420a35
lea ecx, [esp + 0x16]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420a24
mov word [ebx], 0
jmp 0x4208c7
xor ebx, ebx
lea ecx, [esp + 0x34]
call fcn.0043bf20
mov dword [esp + 0x140], 0x279e938f
mov byte [esp + 0x144], 0x28
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0xa2fd82c7
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5d027e79]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1d
mov byte [esp + eax + 0x5d027e79], cl
inc eax
cmp eax, 0xa2fd82d3
jne 0x420a80
movzx eax, byte [esp + 0x140]
test al, al
je 0x420acb
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ac0
mov byte [esi], 0
mov dword [edi], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
and cl, 1
mov edi, ecx
test eax, eax
je 0x420b0c
cmp eax, dword [esp + 0x50]
je 0x420b02
push eax
call fcn.0040c8f0
add esp, 4
mov dword [esp + 0x4c], 0
mov ebx, edi
mov edi, dword [ebp + 0xc]
jmp 0x420a41
mov eax, dword [ebp + 0xc]
mov ebx, edi
mov edi, eax
jmp 0x420a41