Function at 0x41f0a0
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, 0x2d8
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0x1baab1bb
mov byte [esp + 0x13c], 0x20
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
mov ecx, 0x3531f1b9
mov edx, 0x46
movzx esi, byte [esp + ecx - 0x3531f081]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
mov esi, 1
sub esi, ebx
not esi
and esi, 1
or ebx, 1
add ebx, esi
add bl, 0x62
mov byte [esp + ecx - 0x3531f081], bl
inc ecx
dec edx
cmp ecx, 0x3531f1c5
jne 0x41f100
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x41f15b
lea edx, [esp + 0x139]
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f150
mov byte [esi], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x50]
lea ebx, [esp + 0x28]
push ecx
push edx
push ebx
push dword [edi + 0x10]
push eax
push dword [edi + 0xc]
call fcn.00421490
add esp, 0x18
test al, al
je 0x41f6cd
mov dword [esp + 0x138], 0x61091708
mov byte [esp + 0x13c], 0x94
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
mov eax, 0x66
mov edi, 0x19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], edi
movzx edx, byte [esp + eax + 0xd2]
mov edi, dword [esp + 8]
and edi, 0x18
mov ebx, eax
and ebx, 0x67
or ebx, edi
mov edi, edx
and edi, 0x67
mov ecx, edx
and ecx, 8
or ecx, 1
xor ecx, edi
mov edi, dword [esp + 8]
and edx, 0xffffff90
or edx, ecx
xor edx, ebx
xor dl, 0x99
add dl, 0x82
mov byte [esp + eax + 0xd2], dl
inc eax
dec edi
cmp eax, 0x71
jne 0x41f1e0
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f24b
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f240
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], 0x6e987569
mov dword [esp + 0x13c], 0x8c6b958a
mov dword [esp + 0x140], 0x9a4c7c62
mov dword [esp + 0x144], 0x747b7a79
mov dword [esp + 0x148], 0x72887b81
mov dword [esp + 0x14c], 0x85ba8fbd
mov dword [esp + 0x150], 0x484f4e4d
mov dword [esp + 0x154], 0xad8243bc
mov dword [esp + 0x158], 0xb75c894b
mov dword [esp + 0x15c], 0x5e4b4fb7
mov dword [esp + 0x160], 0x965645b3
mov dword [esp + 0x164], 0x6794b4b0
mov dword [esp + 0x168], 0x9c6654b6
mov dword [esp + 0x16c], 0x23bf5f5d
mov dword [esp + 0x170], 0x2a30d12f
mov dword [esp + 0x174], 0x242b2a29
mov dword [esp + 0x178], 0xd6c5dbd1
mov dword [esp + 0x17c], 0x3c2fc823
mov dword [esp + 0x180], 0x3821c32c
mov dword [esp + 0x184], 0x3b3b3a39
mov dword [esp + 0x188], 0x3037362d
mov dword [esp + 0x18c], 0xc33a2731
mov dword [esp + 0x190], 0x1e061302
mov dword [esp + 0x194], 0xf6c50712
mov dword [esp + 0x198], 0x70605
mov dword [esp + 0x19c], 0xfe320af5
mov dword [esp + 0x1a0], 0xe31dee1d
mov dword [esp + 0x1a4], 0x1417f811
mov dword [esp + 0x1a8], 0x10171615
mov dword [esp + 0x1ac], 0xf8131211
mov dword [esp + 0x1b0], 0xea1922e1
mov dword [esp + 0x1b4], 0xe4ebeae9
mov dword [esp + 0x1b8], 0x1d0b0413
mov dword [esp + 0x1bc], 0xf116eee1
mov byte [esp + 0x1c0], 0xbc
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 9
xor cl, byte [esp + eax + 0x138]
add cl, 0xd3
mov byte [esp + eax + 0x138], cl
inc eax
cmp eax, 0x90
jne 0x41f410
mov dword [esp + 0x58], 0xcc0efefa
mov dword [esp + 0x5c], 0x74c92b54
mov dword [esp + 0x60], 0x6178c404
mov dword [esp + 0x64], 0xb54a4b48
mov dword [esp + 0x68], 0xb92ab63b
mov dword [esp + 0x6c], 0x95a138f8
mov dword [esp + 0x70], 0xb9bebfbc
mov dword [esp + 0x74], 0xedaa30f0
mov dword [esp + 0x78], 0xce6b29
mov dword [esp + 0x7c], 0x99966e06
mov dword [esp + 0x80], 0x9d9a9b98
mov dword [esp + 0x84], 0xa19e9f9c
mov dword [esp + 0x88], 0x1cde2e2a
mov dword [esp + 0x8c], 0x16dacb84
mov dword [esp + 0x90], 0x966bd7aa
mov dword [esp + 0x94], 0x859a9b98
mov dword [esp + 0x98], 0xc9a6d4cc
mov dword [esp + 0x9c], 0x8deecf0b
mov dword [esp + 0xa0], 0x891578c4
mov dword [esp + 0xa4], 0x9d8a8b88
mov dword [esp + 0xa8], 0xf1f6f7dc
mov dword [esp + 0xac], 0xb307bbf0
mov dword [esp + 0xb0], 0x4f0bb79c
mov dword [esp + 0xb4], 0x1b0fb390
mov dword [esp + 0xb8], 0xe1e6e7e4
mov dword [esp + 0xbc], 0x81ae1454
mov dword [esp + 0xc0], 0x9965a4ec
mov dword [esp + 0xc4], 0xd56422a0
mov dword [esp + 0xc8], 0xd1d6d7d4
mov dword [esp + 0xcc], 0x95d2d3d0
mov dword [esp + 0xd0], 0xa6dfc557
mov dword [esp + 0xd4], 0xc5dadbd8
mov dword [esp + 0xd8], 0xad72328c
mov dword [esp + 0xdc], 0xee918bc0
mov byte [esp + 0xe0], 0xcc
mov byte [esp + 0xe3], 0
mov word [esp + 0xe1], 0
mov eax, 0xc3e1edf1
mov edi, 0x3c1e12c4
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x3c1e1267]
mov ebx, eax
and ebx, edx
add ebx, ebx
mov ecx, edi
sub ecx, edx
add ecx, 0xffffff4c
sub ebx, edx
add ebx, edi
and ebx, 0xfe
or ecx, 0xfe
xor ecx, ebx
add edx, eax
and edx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x3c1e1267], cl
inc eax
dec edi
cmp eax, 0xc3e1ee7d
jne 0x41f5b0
lea eax, [esp + 0x138]
lea edx, [esp + 0x58]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea eax, [esp + 0x34]
push eax
call fcn.0043f0b0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x4202c7
mov dword [esp + 0x138], 0x6bcccbd8
mov byte [esp + 0x13c], 0x70
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0x95
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xa3]
lea ecx, [eax - 0x45be7300]
mov edi, eax
and edi, edx
or ecx, edx
xor ecx, edi
mov edx, ecx
and edx, 0x14
mov edi, ecx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, edi
xor ecx, 0x16
add ecx, ebx
add ecx, edx
inc cl
mov byte [esp + eax + 0xa3], cl
inc eax
cmp eax, 0x9f
jne 0x41f660
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f6d6
lea ecx, [esp + 0x139]
lea edx, [esp + 0x28]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f6c0
jmp 0x41f6da
mov edi, esi
xor ebx, ebx
jmp 0x4202cd
lea edx, [esp + 0x28]
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push edx
call fcn.0043f0b0
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
xor ecx, ecx
or eax, edx
je 0x4202c9
mov dword [esp + 0x138], 0x11f4ecfe
mov byte [esp + 0x13c], 0xc
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x42
xor al, byte [esp + ecx + 0x138]
add al, 0xb6
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 8
jne 0x41f740
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f77b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f770
mov byte [esi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x28]
push 0
push 8
push eax
push edx
call fcn.0043e650
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x4202c7
mov dword [esp + 0x138], 0x81221de9
mov byte [esp + 0x13c], 0xb4
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
mov eax, 0xce2c2e9e
mov ecx, 0x61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x31d3d29a]
mov edi, eax
or edi, edx
not edx
or edx, ecx
and edx, edi
mov edi, edx
not edi
add edx, 0xe9
and edi, 1
or edx, 1
add edx, edi
mov byte [esp + eax + 0x31d3d29a], dl
inc eax
dec ecx
cmp eax, 0xce2c2ea6
jne 0x41f7e0
movzx eax, byte [esp + 0x138]
test al, al
je 0x41f83b
lea ecx, [esp + 0x139]
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 0x41f830
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xe8], ecx
cmp eax, ecx
je 0x4202c7
xor ecx, ecx
lea edi, [esp + 0x28]
jmp 0x41f88e
xor ebx, ebx
push dword [esp + 8]
call fcn.00404780
add esp, 4
mov ecx, dword [esp + 0x3c]
and cl, 1
or cl, bl
mov eax, dword [esp + 0xec]
add eax, 8
cmp eax, dword [esp + 0xe8]
je 0x42036d
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040c700
add esp, 0xc
xor ebx, ebx
jmp 0x41f8de
lea edi, [esp + 0x28]
inc ebx
cmp ebx, 0xb
je 0x41fa80
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.0043e510
test eax, eax
js 0x41f8d4
movzx eax, byte [esp + 0x208]
movzx ecx, byte [esp + 0x209]
or al, 0x30
mov byte [esp + 0xc], al
or cl, 0x30
mov byte [esp + 0xd], cl
movzx ecx, byte [esp + 0x20a]
or cl, 0x30
mov byte [esp + 0xe], cl
movzx ecx, byte [esp + 0x2c8]
or cl, 0x30
mov byte [esp + 0xf], cl
mov word [esp + 0x10], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0xd]
inc ecx
test al, al
jne 0x41f950
mov byte [esi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x41faa0
add esi, ecx
mov dword [esp + 0x58], 0x2bc5dcb5
mov byte [esp + 0x5c], 0x30
lea eax, [esp + 0x5d]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xe76d47f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x1892b863]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x37
mov byte [esp + eax + 0x1892b863], cl
inc eax
cmp eax, 0xe76d4800
jne 0x41f9a0
movzx eax, byte [esp + 0x58]
test al, al
je 0x41f9eb
lea ecx, [esp + 0x59]
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 0x41f9e0
mov byte [esi], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xff676980
mov dword [esp + 0xf0], 0xfcfdfeff
xor eax, eax
nop
nop
nop
nop
nop
xor byte [esp + eax + 0xf0], al
inc eax
cmp eax, 4
jne 0x41fa10
mov eax, dword [0x44f890]
test eax, eax
je 0x41f8d0
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov edi, dword [0x44f894]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x41fa53
inc edx
cmp eax, edx
jne 0x41fa40
jmp 0x41f8d0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41f8d0
lea ecx, [esp + 0x58]
push ecx
push 0
push 2
push dword [0x44f898]
push eax
call fcn.0043ff80
add esp, 0x14
jmp 0x41f8d0
cmp byte [esp + 0x20a], 0
jne 0x41faa2
mov ecx, dword [esp + 0x3c]
jmp 0x41f877
add esi, ecx
call fcn.00404940
mov dword [esp + 8], eax
push eax
call fcn.00404570
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x58], 0xff51555b
mov byte [esp + 0x5c], 0xc8
lea eax, [esp + 0x5d]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0x55baa053
mov ecx, 0xac
nop
movzx edx, byte [esp + eax - 0x55ba9ffb]
mov edi, ecx
xor edi, eax
and edi, edx
xor edi, eax
add edi, 0x3ea56723
mov edx, edi
and edx, 0xd35ade60
xor edi, 0x535ade60
lea edi, [edi + edx*2]
mov edx, edi
and edx, 0x5d
add edx, edx
xor edi, 0x22
sub edx, edi
mov byte [esp + eax - 0x55ba9ffb], dl
inc eax
dec ecx
cmp eax, 0x55baa05f
jne 0x41fae0
movzx eax, byte [esp + 0x58]
test al, al
je 0x41fb50
lea edx, [esp + 0x59]
lea ecx, [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x41fb40
jmp 0x41fb54
lea ecx, [esp + 0x28]
mov byte [esi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov edi, eax
or edi, edx
je 0x41fba0
push 0
push 0
push 0x40
mov ebx, ecx
lea edi, [esp + 0x64]
push edi
push edx
push eax
call fcn.0043e510
test eax, eax
js 0x41fbac
mov ecx, ebx
mov edx, edi
push dword [esp]
call fcn.00421c80
add esp, 4
mov dword [esp + 4], eax
jmp 0x41fbb4
mov eax, esi
mov dword [esp + 4], 0
jmp 0x41fbb6
mov dword [esp + 4], 0
mov eax, esi
mov dword [esp + 0x58], 0x21444441
mov byte [esp + 0x5c], 0x34
lea ecx, [esp + 0x5d]
mov dword [ecx + 3], 0
mov dword [ecx], 0
mov ecx, 0xb6
mov edi, 0x3a3c8649
nop
nop
movzx edx, byte [esp + ecx - 0x5e]
mov ebx, edx
not ebx
lea edx, [edx + ebx*2]
mov esi, 0xfffffffe
sub esi, edx
or esi, edi
or ebx, ecx
and ebx, esi
lea edx, [ebx + ebx]
not edx
add edx, ebx
add dl, 0x72
mov byte [esp + ecx - 0x5e], dl
inc ecx
dec edi
cmp ecx, 0xc2
jne 0x41fbe0
movzx ecx, byte [esp + 0x58]
test cl, cl
je 0x41fc40
lea edx, [esp + 0x59]
mov esi, eax
lea edi, [esp + 0x28]
nop
nop
nop
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 0x41fc30
jmp 0x41fc46
mov esi, eax
lea edi, [esp + 0x28]
mov byte [esi], 0
cmp byte [esp + 4], 0
je 0x41f860
push dword [esp]
call fcn.00404740
add esp, 4
test eax, eax
je 0x41fe02
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043e510
test eax, eax
mov dword [esp + 4], esi
js 0x41ffa0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea esi, [esp + 0x114]
push esi
push edx
push eax
call fcn.0043e510
test eax, eax
js 0x41ffa0
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea esi, [esp + 0xfc]
push esi
push edx
push eax
call fcn.0043e510
test eax, eax
js 0x41ffa0
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp], eax
js 0x41fe09
mov dword [esp + 0xc], 0x21ab27cb
mov dword [esp + 0x10], 0xddb023bf
mov dword [esp + 0x14], 0xd922dffc
mov dword [esp + 0x18], 0xd556db3b
mov dword [esp + 0x1c], 0xd132d737
mov word [esp + 0x20], 0xd3d0
mov dword [esp + 0x22], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xc]
mov edx, eax
and edx, 7
xor edx, 0x3d56cc47
mov esi, eax
and esi, 0x18
sub esi, edx
lea edi, [esi + 0x7ffc79c0]
or edi, 0xa2
sub edi, esi
add edi, 0x80038640
mov edx, 0x3f
sub edx, esi
not edx
and edx, 0x5d
or edx, edi
xor edx, ecx
xor edx, 0xa2
add dl, 0xa3
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 0x1a
jne 0x41fd60
movzx ebx, word [esp + 0xc]
test bx, bx
je 0x41fe64
lea eax, [esp + 0xc]
mov esi, dword [esp]
mov edx, esi
jmp 0x41fddc
movzx ebx, word [eax]
test bx, bx
je 0x41fe78
movzx edi, word [edx]
test di, di
je 0x41fe6d
add edx, 2
add eax, 2
lea ecx, [esi + 2]
cmp di, bx
je 0x41fdfa
mov esi, ecx
mov edx, ecx
je 0x41fdd0
lea eax, [esp + 0xc]
jmp 0x41fdd0
mov bl, 1
jmp 0x41f862
mov ebx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ebx
or eax, edi
je 0x41ffa0
mov eax, dword [esp + 0xf8]
lea esi, [eax*2 + 2]
inc eax
mov eax, esi
jns 0x41fe39
mov eax, 0xffffffff
push eax
call fcn.0040c560
add esp, 4
lea ecx, [esp + 0x28]
push 0
push 0
push esi
mov dword [esp + 0xc], eax
push eax
push edi
push ebx
call fcn.0043e510
test eax, eax
jns 0x41fd1c
jmp 0x41ffa0
mov esi, dword [esp]
lea edx, [esp + 0x58]
jmp 0x41fe86
lea edx, [esp + 0x58]
mov ebx, edx
jmp 0x41ff6c
lea edx, [esp + 0x58]
mov ebx, edx
test esi, esi
je 0x41ff6c
movzx edi, word [esi + 0x14]
mov ebx, edx
test di, di
je 0x41ff6c
lea eax, [esi + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41feba
movzx edi, word [esi + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41fea0
mov ebx, edx
jmp 0x41ff6c
mov ebx, edx
test ecx, ecx
je 0x41ff67
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x41ff07
xor edi, edi
mov ebx, edx
mov dword [esp + 0x38], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
mov esi, dword [esp + 0x38]
add ebx, 2
inc edi
cmp esi, edi
jne 0x41fee0
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x58]
jmp 0x41ff0b
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x41ff67
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 esi, 0xfffffffc
jne 0x41ff11
lea edx, [esp + 0x58]
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x41ff85
push dword [esp]
call fcn.0040c570
lea edx, [esp + 0x5c]
add esp, 4
cmp edx, ebx
mov esi, dword [esp + 4]
jne 0x42004a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xc], 0xb928bbfb
mov dword [esp + 0x10], 0xbd2fbfdd
mov dword [esp + 0x14], 0xb120b325
mov dword [esp + 0x18], 0xb522b72f
mov dword [esp + 0x1c], 0xa9aaab25
mov eax, 0x8737bdc7
mov ecx, 0xe6f7b8e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
xor esi, 0xa8
mov edx, ecx
and edx, 0xae
sub edx, esi
xor dl, byte [esp + eax + 0x78c84245]
add dl, 0x65
mov byte [esp + eax + 0x78c84245], dl
inc eax
add ecx, 2
cmp eax, 0x8737bddb
jne 0x41ffe0
movzx eax, word [esp + 0xc]
lea edx, [esp + 0x58]
mov ebx, edx
test ax, ax
je 0x420041
lea ecx, [esp + 0xe]
mov ebx, edx
nop
nop
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 0x420030
mov word [ebx], 0
mov esi, dword [esp + 4]
sub ebx, edx
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
xor eax, 3
mov ecx, ebx
or ecx, 0xfffffffc
and ecx, eax
lea edi, [esi + ecx]
lea esi, [esp + ecx]
add esi, 0x58
mov edx, ebx
not edx
or edx, 3
lea eax, [ebx + edx]
inc eax
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x38], esi
mov dword [esp], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test al, 1
je 0x42009f
add edx, ebx
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + edx]
mov ecx, dword [esp]
mov byte [ecx + edx], al
mov dword [esp + 0xc], 0x6b57a5fe
mov dword [esp + 0x10], 0xf502
mov eax, 0xfe
mov ecx, 1
mov edi, dword [ebp + 0x14]
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xf2]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, eax
and edx, ecx
or edx, esi
add dl, 0xa
mov byte [esp + eax - 0xf2], dl
inc eax
dec ecx
cmp eax, 0x106
jne 0x4200c0
mov esi, dword [esp + 4]
add esi, ebx
movzx eax, byte [esp + 0xc]
test al, al
je 0x42010b
lea ecx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420100
mov byte [esi], 0
mov edi, dword [edi]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x420120
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420158
mov eax, 0xffffffff
jmp 0x420161
add ebx, eax
lea eax, [ebx*2 + 0x14]
mov dword [esp + 4], esi
push eax
call fcn.0040c560
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x420191
add edi, 2
mov edx, eax
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420180
mov dword [esp], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0xc], 0x1f4c196b
mov dword [esp + 0x10], 0x63d91db9
mov dword [esp + 0x14], 0x67d26112
mov dword [esp + 0x18], 0x6bde65dc
mov dword [esp + 0x1c], 0x6968
mov ecx, 0x2ecd09ba
mov edx, 0xd132f645
nop
nop
nop
movzx esi, byte [esp + ecx - 0x2ecd09ae]
mov ebx, edx
and ebx, 0xc122007c
mov edi, ecx
and edi, 0x2c840903
or edi, ebx
xor edi, esi
mov ebx, edi
not ebx
and edi, 0xa3
xor edi, 3
and ebx, 0x5c
sub ebx, edi
inc bl
mov byte [esp + ecx - 0x2ecd09ae], bl
inc ecx
dec edx
cmp ecx, 0x2ecd09ce
jne 0x4201d0
add eax, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x420241
lea edx, [esp + 0x5a]
nop
nop
nop
nop
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 0x420230
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov esi, dword [esp + 4]
je 0x420271
lea edx, [esp + 0xe]
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 0x420260
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 8]
call fcn.00405500
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x420290
mov ecx, dword [ebp + 8]
push ebx
push edi
push dword [esp + 8]
call fcn.0040cf20
mov ebx, eax
push edi
call fcn.00405590
add esp, 4
push dword [esp]
call fcn.0040c570
add esp, 4
lea edi, [esp + 0x28]
jmp 0x41f862
xor ecx, ecx
mov ebx, ecx
mov edi, esi
lea ecx, [esp + 0x28]
call fcn.0043de30
mov dword [esp + 0x138], 0x8b3a3f2b
mov byte [esp + 0x13c], 0x80
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
mov eax, 0xe1
mov ecx, 0x1e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x57]
mov esi, edx
not esi
or esi, ecx
or edx, eax
and edx, esi
add dl, 0x9b
mov byte [esp + eax + 0x57], dl
inc eax
dec ecx
cmp eax, 0xeb
jne 0x420310
movzx eax, byte [esp + 0x138]
test al, al
je 0x42035b
lea ecx, [esp + 0x139]
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 0x420350
mov byte [edi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x44]
and cl, 1
test eax, eax
je 0x4202c9
cmp eax, dword [esp + 0x48]
je 0x4202c9
push eax
mov edi, ecx
call fcn.0040c570
mov ecx, edi
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x4202c9