Function at 0x420320
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, 0x300
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x148], 0xfa6a9b7
mov byte [esp + 0x14c], 0x18
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov ecx, 0xbb
mov edx, 0x44594444
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x8d]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, edx
and esi, ecx
or esi, edi
mov ebx, esi
not ebx
and ebx, 0x58
add ebx, ebx
xor esi, 0x58
sub ebx, esi
mov byte [esp + ecx + 0x8d], bl
inc ecx
dec edx
cmp ecx, 0xc3
jne 0x420380
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x148]
test cl, cl
je 0x4203db
lea edx, [esp + 0x149]
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4203d0
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]
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.00422d20
add esp, 0x18
test al, al
je 0x4217f1
mov dword [esp + 0x148], 0x4f97a5ac
mov byte [esp + 0x14c], 0x38
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov al, 0xb4
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx + 0x148]
xor cl, al
xor cl, 0x3f
add cl, 0x49
mov byte [esp + edx + 0x148], cl
inc edx
dec al
cmp edx, 8
jne 0x420460
movzx eax, byte [esp + 0x148]
test al, al
je 0x4204ab
lea ecx, [esp + 0x149]
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 0x4204a0
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x148], 0xe3a0a57
mov dword [esp + 0x14c], 0x2726012c
mov dword [esp + 0x150], 0x41512603
mov dword [esp + 0x154], 0x4c4b4a49
mov dword [esp + 0x158], 0x3e395b1c
mov dword [esp + 0x15c], 0x473e302a
mov dword [esp + 0x160], 0xb8474645
mov dword [esp + 0x164], 0xb8b3e7e2
mov dword [esp + 0x168], 0xd6c5f6c1
mov dword [esp + 0x16c], 0xfce4dac9
mov dword [esp + 0x170], 0xc2a3d0b0
mov dword [esp + 0x174], 0xb9d4c3fe
mov dword [esp + 0x178], 0xa8cae6bc
mov dword [esp + 0x17c], 0xf0f7b6b6
mov dword [esp + 0x180], 0xd1a3aeed
mov dword [esp + 0x184], 0x9c9b9a99
mov dword [esp + 0x188], 0xcefdfbc1
mov dword [esp + 0x18c], 0x9487f893
mov dword [esp + 0x190], 0x8891f3e4
mov dword [esp + 0x194], 0x9b8b8a89
mov dword [esp + 0x198], 0x808f8ef6
mov dword [esp + 0x19c], 0xcef18a81
mov dword [esp + 0x1a0], 0xed96f292
mov dword [esp + 0x1a4], 0x8fea8b86
mov dword [esp + 0x1a8], 0xf0fffefd
mov dword [esp + 0x1ac], 0x96e2faad
mov dword [esp + 0x1b0], 0xb3f5a6f5
mov dword [esp + 0x1b4], 0xecff88e1
mov dword [esp + 0x1b8], 0xe0efeeed
mov dword [esp + 0x1bc], 0x98e3e2e1
mov dword [esp + 0x1c0], 0xdab9b2f1
mov dword [esp + 0x1c4], 0xdcdbdad9
mov dword [esp + 0x1c8], 0xb5abbc83
mov dword [esp + 0x1cc], 0xc18ec6d1
mov byte [esp + 0x1d0], 0x14
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d1], 0
mov eax, 0xe5
mov ecx, 0x1a
nop
nop
nop
movzx edi, byte [esp + eax + 0x63]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x87
mov byte [esp + eax + 0x63], dl
inc eax
dec ecx
cmp eax, 0x175
jne 0x420670
mov dword [esp + 0x78], 0x603a3636
mov dword [esp + 0x7c], 0xb07fdd98
mov dword [esp + 0x80], 0x83a46020
mov dword [esp + 0x84], 0xfffefdfc
mov dword [esp + 0x88], 0xeb06fe75
mov dword [esp + 0x8c], 0x8f876c2c
mov dword [esp + 0x90], 0x8b8a8988
mov dword [esp + 0x94], 0x57fe1454
mov dword [esp + 0x98], 0x6cbac503
mov dword [esp + 0x9c], 0xdbdac66a
mov dword [esp + 0xa0], 0xc7c6c5c4
mov dword [esp + 0xa4], 0xc3c2c1c0
mov dword [esp + 0xa8], 0x104a4646
mov dword [esp + 0xac], 0xe4e5de8
mov dword [esp + 0xb0], 0xae3171f6
mov dword [esp + 0xb4], 0xafaeadac
mov dword [esp + 0xb8], 0x7bc29078
mov dword [esp + 0xbc], 0xa782613d
mov dword [esp + 0xc0], 0xbb332460
mov dword [esp + 0xc4], 0x87bebdbc
mov dword [esp + 0xc8], 0xb3b2b1c8
mov dword [esp + 0xcc], 0x712d6db4
mov dword [esp + 0xd0], 0x95d19168
mov dword [esp + 0xd4], 0xd9d59574
mov dword [esp + 0xd8], 0x43424140
mov dword [esp + 0xdc], 0x6382d898
mov dword [esp + 0xe0], 0x4bc38058
mov dword [esp + 0xe4], 0x5fd81a84
mov dword [esp + 0xe8], 0x53525150
mov dword [esp + 0xec], 0x8f565554
mov dword [esp + 0xf0], 0x7e6563f1
mov dword [esp + 0xf4], 0x6f6e6d6c
mov dword [esp + 0xf8], 0x47befab8
mov dword [esp + 0xfc], 0x657bd64
mov byte [esp + 0x100], pe_nt_image_headers32
mov word [esp + 0x105], 0
mov dword [esp + 0x101], 0
mov eax, 0xa8
mov edx, 0x57
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x30]
mov dword [esp + 4], ecx
lea edi, [eax - 0x279d4b00]
mov ebx, eax
and ebx, edi
and ebx, ecx
add ebx, ebx
mov ecx, ebx
not ecx
and ecx, edi
and ebx, edx
not ebx
add ebx, ecx
add bl, byte [esp + 4]
add bl, 0xb9
mov byte [esp + eax - 0x30], bl
inc eax
dec edx
cmp eax, 0x137
jne 0x420830
lea edx, [esp + 0x148]
lea eax, [esp + 0x78]
lea ecx, [esp + 0x138]
push edx
push 0x88
push eax
lea eax, [esp + 0x40]
push eax
call fcn.004401a0
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
or eax, edx
je 0x42094d
mov dword [esp + 0x148], 0xdb7c7b68
mov byte [esp + 0x14c], 0xd0
mov dword [esp + 0x14d], 0
mov word [esp + 0x151], 0
mov eax, 0xa9baaae
mov ecx, 0xf5645552
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xa9ba966]
lea ebx, [eax - 1]
and ebx, 6
xor ebx, 0xe1045106
mov edx, ecx
or edx, 0x14f30ef9
add edx, eax
or edx, ebx
xor edx, edi
mov edi, edx
and edi, 1
and edx, 0xfe
xor edx, 7
add edx, edi
add dl, 0x9e
mov byte [esp + eax - 0xa9ba966], dl
inc eax
dec ecx
cmp eax, 0xa9baab9
jne 0x4208e0
movzx eax, byte [esp + 0x148]
test al, al
je 0x420954
lea ecx, [esp + 0x149]
lea edx, [esp + 0x34]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420940
jmp 0x420958
xor ebx, ebx
jmp 0x4217f1
lea edx, [esp + 0x34]
mov byte [esi], 0
lea eax, [esp + 0x130]
lea ecx, [esp + 0x138]
push 0
push 8
push eax
push edx
call fcn.004401a0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
lea edi, [esp + 0x148]
je 0x4217ed
mov dword [esp + 0x148], 0x89242432
mov byte [esp + 0x14c], 0x84
mov dword [esp + 0x14d], 0
mov eax, 0xaf1fdc9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edi
movzx ecx, byte [edi]
mov edx, eax
or edx, ecx
mov edi, ecx
mov ebx, eax
xor ebx, ecx
sub ecx, ebx
not edi
and edi, eax
add ecx, edi
mov edi, dword [esp + 4]
not edx
or ecx, edx
mov edx, ecx
and edx, 0x1f
xor ecx, 0x6b9f4f1f
lea edx, [ecx + edx*2]
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [edi], cl
inc edi
dec eax
cmp eax, 0xaf1fdc96
jne 0x4209c0
movzx eax, byte [esp + 0x148]
test al, al
je 0x420a2b
lea ecx, [esp + 0x149]
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 0x420a20
mov byte [esi], 0
lea eax, [esp + 0x128]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.0043f6d0
mov eax, dword [esp + 0x4c]
xor ecx, ecx
cmp eax, dword [esp + 0x50]
je 0x4217ef
mov dword [esp + 0x148], 0x63f161fd
mov dword [esp + 0x14c], 0x67c265c1
mov dword [esp + 0x150], 0x5bff59ff
mov dword [esp + 0x154], 0x5ffb5d82
mov dword [esp + 0x158], 0x53f751d8
xor ecx, ecx
lea edx, [esp + 0x15c]
mov word [esp + 0x15c], 0x5554
mov dword [esp + 0x15e], 0
nop
nop
nop
mov eax, ecx
add al, 0x18
xor al, byte [esp + ecx + 0x148]
add al, 0x88
mov byte [esp + ecx + 0x148], al
inc ecx
cmp ecx, 0x1a
jne 0x420ab0
lea edi, [esp + 0x2e6]
lea eax, [esp + 0x148]
mov ebx, eax
mov ecx, 5
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0x2fa]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x148], 0xc1a2bda9
mov byte [esp + 0x14c], 0xd4
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov ecx, 0xb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
mov edi, ecx
or edi, edx
not edi
mov ebx, edx
not ebx
or ebx, ecx
add edx, ebx
inc edx
or edx, edi
add dl, 0x7a
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xa9
jne 0x420b30
movzx eax, byte [esp + 0x148]
test al, al
je 0x420b7b
lea ecx, [esp + 0x149]
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 0x420b70
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x110], ecx
cmp eax, ecx
je 0x4217ed
xor ecx, ecx
lea ebx, [esp + 0x34]
jmp 0x420bbb
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x114]
add eax, 8
cmp eax, dword [esp + 0x110]
je 0x42188d
mov dword [esp + 0x44], ecx
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x114], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x150]
push eax
call fcn.0040ce50
add esp, 0xc
xor eax, eax
jmp 0x420bfe
mov eax, dword [esp + 4]
inc eax
cmp eax, 0xb
je 0x420e80
mov dword [esp + 4], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x154]
push eax
push dword [esp + 0x18]
push dword [esp + 0x44]
call fcn.0043f520
test eax, eax
js 0x420bf0
cmp byte [esp + 0x218], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x219], 0
mov byte [esp + 0x60], cl
sete al
xor al, 0x31
mov byte [esp + 0x61], al
cmp byte [esp + 0x21a], 0
sete al
xor al, 0x31
mov byte [esp + 0x62], al
cmp byte [esp + 0x2d8], 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
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x61]
inc eax
test cl, cl
jne 0x420c80
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x21a]
test cl, cl
jne 0x420e70
cmp byte [esp + 0x218], 0
mov ebx, dword [esp + 0x188]
mov edi, dword [esp + 0x18c]
jne 0x420cc3
mov edx, ebx
or edx, edi
je 0x420e70
cmp byte [esp + 0x2d8], 0
jne 0x420cd8
xor ebx, 1
or ebx, edi
je 0x420e70
add esi, eax
mov dword [esp + 0x78], 0x1bbdc4ad
mov byte [esp + 0x7c], 0x20
lea eax, [esp + 0x7d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x78]
mov edx, eax
and edx, 9
mov edi, eax
xor edi, 0x349464f9
add edi, edx
mov edx, eax
and edx, 0xfffffff9
add edx, edi
mov edi, ecx
xor edi, 0x74f329ab
mov ebx, edx
xor ebx, 0x74f329ab
or ebx, edi
xor edx, 0x54
xor ecx, 0x8b0cd654
or ecx, edx
and ecx, ebx
add ecx, 0xff695eef
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x33
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0xc
jne 0x420d00
movzx eax, byte [esp + 0x78]
test al, al
je 0x420d7b
lea ecx, [esp + 0x79]
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 0x420d70
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0x2c2d2e2f
mov word [esp + 0x7c], 0
mov eax, 0xf8a5adb8
mov ecx, 0x75a5247
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x75a52c0]
mov ebx, eax
and ebx, 0xe820ac97
mov edx, ecx
and edx, 0x6181028
or edx, ebx
mov ebx, eax
or ebx, edi
xor edx, edi
xor edx, 0x169d1128
and edx, ebx
mov edi, edx
and edi, 0x20818967
xor edx, 0x24c39b67
lea edi, [edx + edi*2]
and edx, 1
or edi, 1
add edx, edi
add edx, 0x17840050
mov edi, edx
xor edi, 0x50
and edx, 0x2f
add edx, edx
sub edx, edi
mov byte [esp + eax + 0x75a52c0], dl
inc eax
dec ecx
cmp eax, 0xf8a5adbe
jne 0x420db0
mov eax, dword [0x451440]
test eax, eax
lea ebx, [esp + 0x34]
je 0x420bf0
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x451444]
cmp dword [edi + edx*8], 0x3568c09b
je 0x420e43
inc edx
cmp eax, edx
jne 0x420e30
jmp 0x420bf0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x420bf0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push eax
push dword [0x451448]
call fcn.004417a0
add esp, 0x14
jmp 0x420bf0
add esi, eax
lea ebx, [esp + 0x34]
test cl, cl
jne 0x420e90
jmp 0x420ba0
movzx ecx, byte [esp + 0x21a]
test cl, cl
je 0x420ba0
call fcn.00404fd0
mov dword [esp + 0x30], eax
push eax
call fcn.00404990
add esp, 4
mov edi, eax
mov dword [esp + 0x78], 0x79070319
mov byte [esp + 0x7c], 0x64
lea eax, [esp + 0x7d]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0x11af0c68
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x11af0bf0]
lea edx, [eax - 0x11af0c00]
and edx, ecx
or ecx, eax
xor ecx, edx
mov edx, 0x48
sub edx, ecx
add ecx, 0x37
and edx, 0xc0
and ecx, 0x3f
sub ecx, edx
inc cl
mov byte [esp + eax - 0x11af0bf0], cl
inc eax
cmp eax, 0x11af0c74
jne 0x420ed0
movzx eax, byte [esp + 0x78]
test al, al
je 0x420f2b
lea ecx, [esp + 0x79]
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 0x420f20
mov dword [esp + 8], edi
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x2e6]
test bx, bx
je 0x420f59
add ecx, 2
cmp bx, di
je 0x420f40
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
mov ecx, eax
or ecx, edx
je 0x420fc0
mov dword [esp + 4], eax
lea ecx, [esp + 0x34]
push 0
push 0
push 0x40
lea eax, [esp + 0x84]
push eax
push edx
push dword [esp + 0x18]
call fcn.0043f520
test eax, eax
js 0x420fd2
xor eax, eax
cmp bx, di
sete al
lea ebx, [esp + 0x34]
mov ecx, ebx
lea edx, [esp + 0x78]
push eax
mov edi, dword [esp + 0xc]
push edi
call fcn.00423950
add esp, 8
jmp 0x420fdc
mov dword [esp + 4], 0
lea ebx, [esp + 0x34]
mov edi, dword [esp + 8]
jmp 0x420fe0
xor eax, eax
lea ebx, [esp + 0x34]
mov edi, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0xcf68106b
mov byte [esp + 0x7c], 0xf8
lea eax, [esp + 0x7d]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x2fe37fab
movzx ecx, byte [esp + eax - 0x2fe37f33]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xa9
mov byte [esp + eax - 0x2fe37f33], cl
inc eax
cmp eax, 0x2fe37fb5
jne 0x421000
movzx eax, byte [esp + 0x78]
test al, al
je 0x42104b
lea ecx, [esp + 0x79]
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 0x421040
mov byte [esi], 0
push edi
call fcn.00404dd0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x421230
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x12c]
push edi
push edx
push eax
call fcn.0043f520
test eax, eax
js 0x421290
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043f520
test eax, eax
js 0x421290
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x6c]
push edi
push edx
push eax
call fcn.0043f520
test eax, eax
js 0x421290
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], eax
js 0x421239
mov dword [esp + 0x10], 0x1fa919cd
mov dword [esp + 0x14], 0xe3541db9
mov dword [esp + 0x18], 0xe722e100
mov dword [esp + 0x1c], 0xeb5ee545
mov dword [esp + 0x20], 0xef32e949
mov word [esp + 0x24], 0xedec
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
mov ecx, eax
xor ecx, 0x624a2705
mov edi, eax
or edi, 0x9db5d8fa
and ecx, edi
add ecx, edi
xor ecx, edx
lea edx, [ecx - 0x148d3ce3]
mov edi, edx
xor edi, 0xfffffffe
or edx, 1
and edx, edi
mov ebx, edx
and ebx, 2
mov edi, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and edi, 0xfd
imul edi, ebx
mov ebx, 0xe2
sub ebx, ecx
and ecx, 1
and ebx, 0xfe
or ebx, ecx
xor ebx, 0xfe
add ebx, edx
add ebx, edi
mov byte [esp + eax + 0x10], bl
inc eax
cmp eax, 0x19
jne 0x421160
movzx ebx, word [esp + 0x10]
test bx, bx
je 0x4215c3
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x4211fc
movzx ebx, word [eax]
test bx, bx
je 0x4215d8
movzx edi, word [edx]
test di, di
je 0x4215cd
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp di, bx
je 0x421220
mov dword [esp + 4], ecx
mov edx, ecx
je 0x4211f0
lea eax, [esp + 0x10]
jmp 0x4211f0
mov dword [esp + 4], edx
jmp 0x4215a7
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x421290
mov eax, dword [esp + 0x68]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x421260
mov eax, 0xffffffff
push eax
call fcn.0040cdd0
add esp, 4
lea ecx, [esp + 0x34]
push 0
push 0
push dword [esp + 0xc]
mov dword [esp + 0x38], eax
push eax
push edi
push ebx
call fcn.0043f520
test eax, eax
jns 0x421118
nop
nop
nop
nop
nop
nop
nop
lea edi, [esp + 0x78]
mov dword [esp + 0x10], 0xb72489c1
mov dword [esp + 0x14], 0xb321b5db
mov dword [esp + 0x18], 0xbf2cb1db
mov dword [esp + 0x1c], 0xbb26bdd5
mov dword [esp + 0x20], 0xa7a6b92b
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9e
xor cl, byte [esp + eax + 0x10]
add cl, 0xea
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x17
jne 0x4212d0
movzx eax, word [esp + 0x10]
mov ebx, edi
test ax, ax
je 0x421311
lea ecx, [esp + 0x12]
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 0x421300
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, 0x78
mov dword [esp + 4], edx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 0xc], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x421364
mov ecx, dword [esp + 4]
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 0xc]
mov byte [edx + ecx], al
push 0xa
push 0xb
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x14]
call fcn.00423730
add esp, 0x10
mov dword [esp + 0x10], 0xe5edeb46
mov dword [esp + 0x14], 0x55323c30
mov dword [esp + 0x18], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x1a
mov ebx, edx
xor ebx, 0x6d
add ebx, edi
xor bl, byte [esp + edx + 0x10]
add bl, 0xdf
mov byte [esp + edx + 0x10], bl
inc edx
add ecx, 2
cmp edx, 0xc
jne 0x4213a0
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x4213eb
lea edx, [esp + 0x11]
nop
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 0x4213e0
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x42140b
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 0x421400
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 0x421420
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
mov dword [esp + 8], esi
jns 0x421444
mov eax, 0xffffffff
jmp 0x42144d
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040cdd0
add esp, 4
movzx ecx, word [edi]
mov esi, eax
test cx, cx
je 0x421481
add edi, 2
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421470
mov dword [esp + 0xc], eax
inc dword [esp + 8]
mov word [esi], 0x2f
mov dword [esp + 0x10], 0x17e419cb
mov dword [esp + 0x14], 0x13991589
mov dword [esp + 0x18], 0xf8211c2
mov dword [esp + 0x1c], 0xb860d84
mov word [esp + 0x20], 0x908
lea ecx, [esp + 0x26]
mov word [ecx], 0
mov dword [ecx - 4], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0xc
mov ebx, edx
xor ebx, 0x46
add ebx, edi
xor bl, byte [esp + edx + 0x10]
add bl, 0xa2
mov byte [esp + edx + 0x10], bl
inc edx
add ecx, 2
cmp edx, 0x18
jne 0x4214d0
add esi, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x421521
lea edx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421510
mov word [esi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421551
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421540
mov word [esi], 0
mov ebx, 0xffffffff
push dword [esp + 0x30]
call fcn.00405b80
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421570
mov ecx, dword [ebp + 8]
push ebx
push edi
mov esi, dword [esp + 0x14]
push esi
call fcn.0040d6d0
mov dword [esp + 4], eax
push edi
call fcn.00405c10
add esp, 4
push esi
call fcn.0040cde0
add esp, 4
lea ebx, [esp + 0x34]
mov esi, dword [esp + 8]
push dword [esp + 0x30]
call fcn.00404e10
add esp, 4
mov ecx, dword [esp + 0x44]
and cl, 1
or cl, byte [esp + 4]
jmp 0x420ba4
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x78]
jmp 0x4215ea
lea ebx, [esp + 0x78]
mov edx, ebx
jmp 0x4217ba
lea ebx, [esp + 0x78]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x4217ba
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x4217ba
lea ecx, [eax + 0x14]
mov dword [esp + 0xc], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42162a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x421610
mov ebx, edx
jmp 0x4217ba
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 0xc]
je 0x4216fe
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x421693
mov ebx, edx
xor edx, edx
mov dword [esp + 0x10c], eax
nop
nop
nop
nop
mov edi, dword [esp + 0xc]
movzx eax, word [edi]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xc], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x421650
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x78]
mov edi, dword [esp + 0xc]
jmp 0x421697
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x4216fe
nop
nop
nop
mov dword [esp + 4], eax
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [eax + edx*2]
mov eax, dword [esp + 4]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x4216a0
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x2d8], 0
jne 0x4217ba
mov dword [esp + 0x10], 0xf7aff998
mov dword [esp + 0x14], 0xf34df546
mov dword [esp + 0x18], 0xcf75f143
mov dword [esp + 0x1c], 0xcb73cd7e
mov dword [esp + 0x20], 0xc775c944
mov word [esp + 0x24], 0xc5c4
mov dword [esp + 0x26], 0
mov edi, 0x56
nop
nop
nop
movzx edx, byte [esp + edi - 0x46]
mov ecx, edx
and ecx, edi
mov eax, ecx
or al, 0xfd
inc al
mov ah, cl
and ah, 0x7d
mul ah
add al, dl
mov edx, eax
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
mov ecx, edx
sub cl, al
movzx eax, cl
add eax, edi
add al, 0x52
mov byte [esp + edi - 0x46], al
inc edi
cmp edi, 0x70
jne 0x421750
movzx eax, word [esp + 0x10]
test ax, ax
je 0x4217b1
lea ecx, [esp + 0x12]
lea edx, [esp + 0x78]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42179e
jmp 0x4217b5
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x77], 0
mov edi, edx
js 0x4217d0
cmp edi, ebx
jne 0x421316
jmp 0x421294
push dword [esp + 0x2c]
call fcn.0040cde0
lea edi, [esp + 0x7c]
add esp, 4
cmp edi, ebx
jne 0x421316
jmp 0x421294
xor ecx, ecx
mov ebx, ecx
lea ecx, [esp + 0x34]
call fcn.0043ec30
mov dword [esp + 0x148], 0x315a416d
mov byte [esp + 0x14c], 0xcc
mov dword [esp + 0x14d], 0
mov eax, 0x32
mov ecx, 0xcd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x116]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 6
mov byte [esp + eax + 0x116], dl
inc eax
dec ecx
cmp eax, 0x3b
jne 0x421830
movzx eax, byte [esp + 0x148]
test al, al
mov edx, ebx
je 0x42187b
lea ecx, [esp + 0x149]
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 0x421870
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
and cl, 1
test eax, eax
je 0x4217ef
cmp eax, dword [esp + 0x50]
je 0x4217ef
push eax
mov edi, ecx
call fcn.0040cde0
mov ecx, edi
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x4217ef