Function at 0x41f510
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 eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0x27beb9cf
mov byte [esp + 0x144], 0x28
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov ecx, 0xd78baf7
mov edx, 8
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0xd78b9b7]
mov edi, edx
xor edi, ecx
and edi, esi
xor edi, ecx
mov esi, edi
and esi, 0x2c
xor edi, 0x2c
lea ebx, [edi + esi*2]
inc bl
mov byte [esp + ecx - 0xd78b9b7], bl
inc ecx
dec edx
cmp ecx, 0xd78baff
jne 0x41f570
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41f5cb
lea edx, [esp + 0x141]
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 0x41f5c0
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 ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea edi, [esp + 0x34]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00421b40
add esp, 0x18
test al, al
je 0x420922
mov dword [esp + 0x140], 0x39819390
mov byte [esp + 0x144], 0x24
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 8
mov ecx, 0x77
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
and ebx, 0x6a
mov edx, eax
and edx, 0x15
or edx, ebx
xor dl, byte [esp + eax + 0x138]
xor dl, 0xea
add dl, 0x58
mov byte [esp + eax + 0x138], dl
inc eax
dec ecx
cmp eax, 0x12
jne 0x41f650
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f69b
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 0x41f690
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], 0xf6faeaaf
mov dword [esp + 0x144], 0xefcef1d4
mov dword [esp + 0x148], 0x91e1eed3
mov dword [esp + 0x14c], 0x949b9a99
mov dword [esp + 0x150], 0xe6f99bc4
mov dword [esp + 0x154], 0x8fe6e0fa
mov dword [esp + 0x158], 0x888f8e8d
mov dword [esp + 0x15c], 0xf883dfd2
mov dword [esp + 0x160], 0xdefdcef1
mov dword [esp + 0x164], 0xb4cceaf9
mov dword [esp + 0x168], 0x92f3a080
mov dword [esp + 0x16c], 0xf98c93b6
mov dword [esp + 0x170], 0xf8aabee4
mov dword [esp + 0x174], 0xa0bffefe
mov dword [esp + 0x178], 0xa193e6a5
mov dword [esp + 0x17c], 0xe4ebeae9
mov dword [esp + 0x180], 0xb685bbb1
mov dword [esp + 0x184], 0xdcef88e3
mov dword [esp + 0x188], 0xd8a183ac
mov dword [esp + 0x18c], 0xdbdbdad9
mov dword [esp + 0x190], 0xd0d7d6ae
mov dword [esp + 0x194], 0x86a1dad1
mov dword [esp + 0x198], 0xc5dea2c2
mov dword [esp + 0x19c], 0xb7dabbbe
mov dword [esp + 0x1a0], 0xc0c7c6c5
mov dword [esp + 0x1a4], 0x5ed2ca95
mov dword [esp + 0x1a8], 0x633d6e3d
mov dword [esp + 0x1ac], 0x34375831
mov dword [esp + 0x1b0], 0x30373635
mov dword [esp + 0x1b4], 0x58333231
mov dword [esp + 0x1b8], 0x2a796221
mov dword [esp + 0x1bc], 0x242b2a29
mov dword [esp + 0x1c0], 0x7d4b4473
mov dword [esp + 0x1c4], 0x11762e21
mov byte [esp + 0x1c8], 0xdc
mov dword [esp + 0x1c9], 0
mov eax, 0xd65e12e7
mov edi, 0x29a1ed19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x29a1ebd9]
mov ecx, edi
or ecx, 0x9ba9cc28
add ecx, eax
mov edx, edi
and edx, 0x200023d7
or edx, ecx
xor edx, ebx
mov ebx, 2
sub ebx, edx
sub ebx, edx
not ebx
and ebx, 2
xor edx, 0x9ba9cc29
add edx, 0x2fd65e82
mov ecx, ebx
and ecx, edx
xor edx, ebx
lea ecx, [edx + ecx*2]
mov byte [esp + edi - 0x29a1ebd9], cl
dec eax
inc edi
cmp eax, 0xd65e125a
jne 0x41f860
mov dword [esp + 0x60], 0x400a7676
mov dword [esp + 0x64], 0xf04f2de8
mov dword [esp + 0x68], 0xe3844000
mov dword [esp + 0x6c], 0xcfcecdcc
mov dword [esp + 0x70], 0xbb26ae35
mov dword [esp + 0x74], 0x9fa73c7c
mov dword [esp + 0x78], 0xbbbab9b8
mov dword [esp + 0x7c], 0x77ae3474
mov dword [esp + 0x80], 0x1c4ae523
mov dword [esp + 0x84], 0xebeae61a
mov dword [esp + 0x88], 0xe7e6e5e4
mov dword [esp + 0x8c], 0xe3e2e1e0
mov dword [esp + 0x90], 0x105a2626
mov dword [esp + 0x94], 0x1e5e4db8
mov dword [esp + 0x98], 0x9e1151d6
mov dword [esp + 0x9c], 0x9f9e9d9c
mov dword [esp + 0xa0], 0x4ba25048
mov dword [esp + 0xa4], 0x8762410d
mov dword [esp + 0xa8], 0x8b130440
mov dword [esp + 0xac], 0x678e8d8c
mov dword [esp + 0xb0], 0x73727158
mov dword [esp + 0xb4], 0xb1fdbd74
mov dword [esp + 0xb8], 0xb5f1b198
mov dword [esp + 0xbc], 0x9f5b594
mov dword [esp + 0xc0], 0x63626160
mov dword [esp + 0xc4], 0x83a2e8a8
mov dword [esp + 0xc8], 0x9be3a068
mov dword [esp + 0xcc], 0x6fe82aa4
mov dword [esp + 0xd0], 0x53525150
mov dword [esp + 0xd4], 0x9f565554
mov dword [esp + 0xd8], 0xae4543d1
mov dword [esp + 0xdc], 0x5f5e5d5c
mov dword [esp + 0xe0], 0xa78eca88
mov dword [esp + 0xe4], 0x66978d44
mov byte [esp + 0xe8], 0x48
mov word [esp + 0xed], 0
mov dword [esp + 0xe9], 0
mov eax, 0xf84d1530
mov ecx, 0xcf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x7b2eb30]
mov ebx, ecx
xor ebx, eax
and ebx, edx
xor ebx, eax
not ebx
and ebx, eax
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0x10
mov byte [esp + eax + 0x7b2eb30], dl
inc eax
dec ecx
cmp eax, 0xf84d15bf
jne 0x41fa40
lea edx, [esp + 0x140]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x130]
push edx
push 0x88
push eax
lea edi, [esp + 0x40]
push edi
call fcn.0043f7e0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ebx, ebx
or eax, edx
je 0x420924
mov dword [esp + 0x140], 0xfb9c9ba8
mov byte [esp + 0x144], 0xf0
mov dword [esp + 0x145], 0
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x7d
xor al, byte [esp + ebx + 0x140]
add al, 0x8f
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 9
jne 0x41fad0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fb0b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fb00
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.0043f7e0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ebx, ebx
or eax, edx
je 0x420924
mov dword [esp + 0x140], 0xc7a0a0b2
mov byte [esp + 0x144], 0xd8
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x4f
xor al, byte [esp + ebx + 0x140]
add al, 0x75
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 8
jne 0x41fb70
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fbab
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fba0
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.0043ec20
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x420922
mov dword [esp + 0x140], 0x2391219d
mov dword [esp + 0x144], 0x27822581
mov dword [esp + 0x148], 0x3b9f399f
mov dword [esp + 0x14c], 0x3f9b3dc2
mov dword [esp + 0x150], 0x339731b8
lea eax, [esp + 0x154]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x154], 0x3534
mov byte [esp + 0x158], 0
mov ebx, 0xf83e037
lea eax, [esp + 0x140]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], eax
movzx edi, byte [eax]
mov edx, edi
mov eax, edi
xor eax, 0x81e66a0
or edi, 0x5f
and edi, eax
mov ecx, ebx
and ecx, 0x8026020
lea eax, [ebx - 0x40000000]
and eax, 0xc781801f
or eax, ecx
and edx, 0xffffffa0
xor edx, 0x81e66a0
add edx, edi
and edi, 0xffffffa0
sub edx, edi
xor edx, eax
mov eax, edx
not eax
and eax, 0x17
xor edx, 0x48
lea eax, [edx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [ecx], al
mov eax, dword [esp + 4]
inc eax
dec ebx
cmp ebx, 0xf83e01e
jne 0x41fc40
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 + 0x2c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0xff5e5f53
mov byte [esp + 0x144], 0xc8
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 0x197c8e54
mov ecx, 0xac
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x197c8d14]
mov edi, edx
not edi
or edi, ecx
add edi, eax
and edx, ecx
or edx, edi
mov edi, edx
and edi, 0x60
xor edx, 0x60
lea edx, [edx + edi*2]
inc dl
mov byte [esp + eax - 0x197c8d14], dl
inc eax
dec ecx
cmp eax, 0x197c8e5e
jne 0x41fd00
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fd5b
lea ecx, [esp + 0x141]
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 0x41fd50
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
xor ebx, ebx
cmp eax, ecx
jne 0x41fd9b
jmp 0x420924
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x42099d
mov dword [esp + 0x44], ebx
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040ca70
add esp, 0xc
xor eax, eax
lea ebx, [esp + 0x34]
jmp 0x41fdee
mov eax, dword [esp + 4]
inc eax
cmp eax, 0xb
je 0x420010
mov dword [esp + 4], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x40]
call fcn.0043ea60
test eax, eax
js 0x41fde0
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0xc], cl
sete al
xor al, 0x31
mov byte [esp + 0xd], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0xe], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0xf], al
mov word [esp + 0x10], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0xd]
inc eax
test cl, cl
jne 0x41fe70
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x420000
cmp byte [esp + 0x210], 0
mov ebx, dword [esp + 0x180]
mov edi, dword [esp + 0x184]
jne 0x41feb3
mov edx, ebx
or edx, edi
je 0x420000
cmp byte [esp + 0x2d0], 0
jne 0x41fec8
xor ebx, 1
or ebx, edi
je 0x420000
add esi, eax
mov dword [esp + 0x60], 0x67050c1d
mov byte [esp + 0x64], 0x68
lea eax, [esp + 0x65]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x6e3cac67
mov ecx, 0x98
nop
movzx edx, byte [esp + eax - 0x6e3cac07]
mov edi, ecx
xor edi, eax
and edi, edx
xor edi, eax
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0xfc
mov byte [esp + eax - 0x6e3cac07], dl
inc eax
dec ecx
cmp eax, 0x6e3cac71
jne 0x41fef0
movzx eax, byte [esp + 0x60]
test al, al
je 0x41ff3b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff30
mov byte [esi], 0
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xff676980
mov dword [esp + 0xf0], 0x34353a3b
mov eax, 0x55dccef6
mov ecx, 0xabb99dec
lea ebx, [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x6c
mov edx, eax
xor edx, 0xb6
add edx, edi
add dl, 0xa
xor dl, byte [esp + eax - 0x55dcce06]
add dl, 0x72
mov byte [esp + eax - 0x55dcce06], dl
inc eax
add ecx, 2
cmp eax, 0x55dccefa
jne 0x41ff70
mov eax, dword [0x4504d8]
test eax, eax
je 0x41fde0
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov edi, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x3568c09b
je 0x41ffd3
inc edx
cmp eax, edx
jne 0x41ffc0
jmp 0x41fde0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41fde0
lea ecx, [esp + 0x60]
push ecx
push 0
push 2
push dword [0x4504e0]
push eax
call fcn.00440d90
add esp, 0x14
jmp 0x41fde0
add esi, eax
test cl, cl
jne 0x420020
jmp 0x41fd80
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x41fd80
call fcn.00404b00
mov dword [esp + 0x2c], eax
push eax
call fcn.00404730
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x60], 0x3b99859f
mov byte [esp + 0x64], 0x20
lea eax, [esp + 0x65]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x60]
mov ebx, eax
and ebx, 0x12
mov edx, ecx
xor edx, 0x8fc6a849
add edx, ebx
xor edx, edi
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0x92
mov byte [esp + ecx + 0x60], dl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x420060
movzx eax, byte [esp + 0x60]
test al, al
je 0x4200ab
lea ecx, [esp + 0x61]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4200a0
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x2de]
test bx, bx
je 0x4200d9
add ecx, 2
cmp bx, di
je 0x4200c0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x420130
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.0043ea60
test eax, eax
js 0x42013a
xor eax, eax
cmp bx, di
sete al
lea ecx, [esp + 0x34]
lea edx, [esp + 0x60]
push eax
push dword [esp + 0xc]
call fcn.004225b0
add esp, 8
jmp 0x42013c
mov dword [esp + 4], 0
jmp 0x420140
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0x8f68706b
mov byte [esp + 0x64], 0x98
lea eax, [esp + 0x65]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x17712c5b
mov ecx, 0x688ed3a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x17712bfb]
mov edi, eax
and edi, edx
add edi, edi
sub edi, edx
lea ebx, [ecx + edi]
add ebx, 0x80000000
and ebx, eax
add ebx, ebx
mov edi, ebx
xor edi, eax
and ebx, ecx
add ebx, ebx
sub edi, ebx
add edi, edx
mov edx, edi
and edx, 1
or edi, 1
add edi, 0x38
xor edi, edx
lea edx, [edi + edx*2]
mov byte [esp + eax - 0x17712bfb], dl
inc eax
dec ecx
cmp eax, 0x17712c65
jne 0x420170
movzx eax, byte [esp + 0x60]
test al, al
je 0x4201e0
lea ecx, [esp + 0x61]
lea edi, [esp + 0x34]
mov ebx, dword [esp + 4]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4201d0
jmp 0x4201e8
lea edi, [esp + 0x34]
mov ebx, dword [esp + 4]
mov byte [esi], 0
push dword [esp + 8]
call fcn.00404900
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x420380
mov dword [esp + 8], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043ea60
test eax, eax
js 0x420450
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043ea60
test eax, eax
js 0x420450
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.0043ea60
test eax, eax
js 0x420450
cmp byte [esp + 0x107], 0
lea eax, [esp + 0xf0]
mov dword [esp + 0x28], eax
js 0x420389
mov dword [esp + 0xc], 0x179919f5
mov dword [esp + 0x10], 0x139c1589
mov dword [esp + 0x14], 0xff21130
mov dword [esp + 0x18], 0xb860ded
mov dword [esp + 0x1c], 0x7e209e9
mov word [esp + 0x20], 0x504
lea eax, [esp + 0x22]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x46
xor cl, byte [esp + eax + 0xc]
add cl, 0xa2
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x19
jne 0x420300
movzx ebx, word [esp + 0xc]
test bx, bx
je 0x4203e8
lea eax, [esp + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, edx
mov dword [esp + 4], edx
jmp 0x42034c
movzx ebx, word [eax]
test bx, bx
je 0x4203f2
movzx edi, word [ecx]
test di, di
je 0x420427
add ecx, 2
add eax, 2
mov edx, dword [esp + 4]
add edx, 2
cmp di, bx
je 0x420370
mov dword [esp + 4], edx
mov ecx, edx
je 0x420340
lea eax, [esp + 0xc]
jmp 0x420340
mov dword [esp + 4], ebx
jmp 0x42077e
mov ebx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ebx
or eax, edi
je 0x420450
mov eax, dword [esp + 0xf8]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x4203bd
mov eax, 0xffffffff
push eax
call fcn.0040c8b0
add esp, 4
lea ecx, [esp + 0x34]
push 0
push 0
push dword [esp + 0xc]
mov dword [esp + 0x34], eax
push eax
push edi
push ebx
call fcn.0043ea60
test eax, eax
jns 0x4202bd
jmp 0x420450
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x60]
jmp 0x420400
lea eax, [esp + 0x60]
mov ebx, eax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x42042d
movzx edx, word [ecx + 0x14]
mov ebx, eax
test dx, dx
je 0x42042d
lea eax, [ecx + 0x14]
xor edi, edi
cmp dx, 0x5c
je 0x42079a
movzx edx, word [ecx + edi + 0x16]
add edi, 2
test dx, dx
jne 0x420410
lea eax, [esp + 0x60]
mov ebx, eax
cmp byte [esp + 0x107], 0
jns 0x420447
push dword [esp + 0x28]
call fcn.0040c8c0
lea eax, [esp + 0x64]
add esp, 4
cmp eax, ebx
jne 0x4204c6
nop
nop
nop
nop
nop
mov dword [esp + 0xc], 0x69186b2b
mov dword [esp + 0x10], 0x6d1f6f0d
mov dword [esp + 0x14], 0x71007305
mov dword [esp + 0x18], 0x7502771f
mov dword [esp + 0x1c], 0x797a7b05
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe7
xor cl, byte [esp + eax + 0xc]
add cl, 0x7d
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x14
jne 0x420480
movzx eax, word [esp + 0xc]
lea ebx, [esp + 0x60]
test ax, ax
je 0x4204c1
lea ecx, [esp + 0xe]
lea ebx, [esp + 0x60]
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4204b0
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x60]
sub edx, eax
mov ecx, edx
shr ecx, 2
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
xor eax, 0xfffffffc
mov ecx, edx
or ecx, 3
and ecx, eax
mov dword [esp + 4], edx
mov eax, edx
mov edx, ecx
and eax, 0xfffffffc
lea edi, [esi + eax]
add eax, esp
add eax, 0x60
shr ecx, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x42051e
and edx, 0xfffffffe
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + edx]
mov ecx, dword [esp + 0x28]
mov byte [ecx + edx], al
push 0xa
push 0xb
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x14]
call fcn.004223f0
add esp, 0x10
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xe5f5f78a
mov dword [esp + 0x10], 0xa58694b8
lea eax, [esp + 0x22]
mov byte [eax - 0xc], 0
mov word [eax - 0xe], 0
mov ecx, 0x1c
mov edx, 0xe4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x10]
mov ebx, edi
not ebx
or ebx, edx
lea eax, [ecx + ebx]
add ebx, edi
inc ebx
or ebx, eax
add bl, 0x79
mov byte [esp + ecx - 0x10], bl
inc ecx
dec edx
cmp ecx, 0x27
jne 0x420570
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x4205bd
lea edx, [esp + 0xd]
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4205b0
jmp 0x4205c1
mov eax, dword [esp + 8]
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4205db
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4205d0
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 0x4205f0
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420610
mov eax, 0xffffffff
jmp 0x420619
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c8b0
add esp, 4
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x420651
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
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 0x420640
inc esi
mov word [ebx], 0x2f
mov dword [esp + 0xc], 0xb1c08fdd
mov dword [esp + 0x10], 0xb52bb3d7
mov dword [esp + 0x14], 0xb922b79a
mov dword [esp + 0x18], 0xbd2ebb20
mov word [esp + 0x1c], 0xbfbc
mov dword [esp + 0x1e], 0
mov ecx, 0x47fdc71d
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x47fdc711]
mov edi, ecx
and edi, edx
add edi, edi
sub edx, edi
add edx, ecx
mov edi, edx
xor edi, 0x92
and edx, 0x6d
add edx, edx
sub edx, edi
inc dl
mov byte [esp + ecx - 0x47fdc711], dl
inc ecx
cmp ecx, 0x47fdc733
jne 0x420690
add ebx, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x4206f1
lea edx, [esp + 0x62]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4206e0
mov word [ebx], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov dword [esp + 8], eax
je 0x420721
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420710
mov word [ebx], 0
xor ebx, ebx
push dword [esp + 0x2c]
call fcn.00405690
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx], 0
lea ebx, [ebx + 1]
jne 0x420740
lea eax, [edi + ebx]
dec eax
mov edx, edi
not edx
and edx, eax
add edx, edx
xor eax, edi
sub edx, eax
mov ecx, dword [ebp + 8]
push edx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d2d0
mov dword [esp + 4], eax
push edi
call fcn.00405720
add esp, 4
push ebx
call fcn.0040c8c0
add esp, 4
push dword [esp + 0x2c]
call fcn.00404940
add esp, 4
mov ebx, dword [esp + 0x44]
and bl, 1
or bl, byte [esp + 4]
jmp 0x41fd84
mov edx, ecx
add ecx, edi
add ecx, 0x14
add edx, edi
mov edi, 0xffffffeb
sub edi, edx
and edi, eax
mov edx, eax
not edx
and edx, ecx
lea ebx, [esp + 0x60]
sub edx, edi
je 0x420872
sar edx, 1
mov ecx, edx
and ecx, 3
je 0x420809
mov dword [esp + 0x30], edx
xor edi, edi
lea ebx, [esp + 0x60]
mov dword [esp + 4], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 4]
mov word [ebx], dx
add ebx, 2
inc edi
cmp ecx, edi
jne 0x4207e0
mov edx, dword [esp + 0x30]
mov ecx, edx
sub ecx, edi
mov edi, ecx
jmp 0x42080f
lea ebx, [esp + 0x60]
mov edi, edx
dec edx
cmp edx, 3
jb 0x420872
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx], dx
lea edx, [eax + ecx*2]
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 2], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*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 0x420820
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
jne 0x42090b
mov dword [esp + 0xc], 0x338b31d0
mov dword [esp + 0x10], 0x2f8d2dba
mov dword [esp + 0x14], 0x2bb529bf
mov dword [esp + 0x18], 0x27bf25b2
mov dword [esp + 0x1c], 0x23b521ac
mov dword [esp + 0x20], 0x1d1c
mov eax, 0xaf98cbcc
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x50673440]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 4
mov byte [esp + eax + 0x50673440], cl
inc eax
cmp eax, 0xaf98cbe4
jne 0x4208c0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x420906
lea ecx, [esp + 0xe]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4208f5
mov word [ebx], 0
lea eax, [esp + 0x60]
cmp byte [esp + 0x107], 0
jns 0x420447
jmp 0x420437
xor ebx, ebx
lea ecx, [esp + 0x34]
call fcn.0043e140
mov dword [esp + 0x140], 0x9767965
mov byte [esp + 0x144], 4
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0x140], al
inc eax
cmp eax, 0xa
jne 0x420960
movzx eax, byte [esp + 0x140]
test al, al
je 0x42098b
lea ecx, [esp + 0x141]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420980
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x420924
cmp eax, dword [esp + 0x50]
je 0x420924
push eax
call fcn.0040c8c0
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x420924