Function at 0x420c10
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, 0x2e8
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x148], 0x4bdad1ab
mov byte [esp + 0x14c], 0x40
mov dword [esp + 0x14d], 0
mov byte [esp + 0x151], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x91
xor dl, byte [esp + ecx + 0x148]
add dl, 0x2b
mov byte [esp + ecx + 0x148], dl
inc ecx
cmp ecx, 0xa
jne 0x420c70
mov esi, dword [esi]
movzx ecx, byte [esp + 0x148]
test cl, cl
je 0x420cbb
lea edx, [esp + 0x149]
nop
nop
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 0x420cb0
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 + 0x70]
lea edi, [esp + 0x34]
mov dword [esp + 0xc], 0
push ecx
push edx
push edi
push dword [ebx + 0x10]
push eax
push dword [ebx + 0xc]
call fcn.004230f0
add esp, 0x18
test al, al
je 0x421e83
mov dword [esp + 0x148], 0xcf97a5ac
mov byte [esp + 0x14c], 0x38
mov dword [esp + 0x14d], 0
mov al, 0xb4
xor ebx, ebx
nop
nop
movzx ecx, byte [esp + ebx + 0x148]
xor cl, al
mov dl, 0x88
sub dl, cl
mov byte [esp + ebx + 0x148], dl
inc ebx
dec al
cmp ebx, 9
jne 0x420d30
movzx eax, byte [esp + 0x148]
test al, al
je 0x420d6b
lea ecx, [esp + 0x149]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420d60
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x148], 0x929aae61
mov dword [esp + 0x14c], 0x9596ab70
mov dword [esp + 0x150], 0x7f6392b5
mov dword [esp + 0x154], 0x68696667
mov dword [esp + 0x158], 0x629b7db8
mov dword [esp + 0x15c], 0x555e9c92
mov dword [esp + 0x160], 0x54555253
mov dword [esp + 0x164], 0x5c41b9ba
mov dword [esp + 0x168], 0xba578257
mov dword [esp + 0x16c], 0x9898a657
mov dword [esp + 0x170], 0xbe51a444
mov dword [esp + 0x174], 0x5fb8bd9e
mov dword [esp + 0x178], 0x54aa9258
mov dword [esp + 0x17c], 0xe4e55a56
mov dword [esp + 0x180], 0xef312aeb
mov dword [esp + 0x184], 0x38393637
mov dword [esp + 0x188], 0xd2dfddd7
mov dword [esp + 0x18c], 0x2035c43d
mov dword [esp + 0x190], 0x2423c5d0
mov dword [esp + 0x194], 0x31292627
mov dword [esp + 0x198], 0x2c2d2a26
mov dword [esp + 0x19c], 0xcae3362f
mov dword [esp + 0x1a0], 0x306e60a
mov dword [esp + 0x1a4], 0xed0ae5e6
mov dword [esp + 0x1a8], 0x1c1d1a1b
mov dword [esp + 0x1ac], 0xe21206f3
mov dword [esp + 0x1b0], 0xe907d203
mov dword [esp + 0x1b4], 0x81de41f
mov dword [esp + 0x1b8], 0xc0d0a0b
mov dword [esp + 0x1bc], 0xfcf10e0f
mov dword [esp + 0x1c0], 0xf61b26e7
mov dword [esp + 0x1c4], 0xf8f9f6f7
mov dword [esp + 0x1c8], 0x1b091815
mov dword [esp + 0x1cc], 0xf70eeaff
mov byte [esp + 0x1d0], 0xa0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d1], 0
mov eax, 0xa
mov ecx, 0xf5
nop
nop
nop
movzx ebx, byte [esp + eax + 0x13e]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add dl, 0xce
mov byte [esp + eax + 0x13e], dl
inc eax
dec ecx
cmp eax, 0x9a
jne 0x420f30
mov dword [esp + 0x78], 0x905a6e6e
mov dword [esp + 0x7c], 0xe0973508
mov dword [esp + 0x80], 0xf3ec9050
mov dword [esp + 0x84], 0x7060504
mov dword [esp + 0x88], 0xb9e068d
mov dword [esp + 0x8c], 0xe71f8444
mov dword [esp + 0x90], 0xb0a0908
mov dword [esp + 0x94], 0x7f26bc7c
mov dword [esp + 0x98], 0x541afdb3
mov dword [esp + 0x9c], 0xcbcafe5a
mov dword [esp + 0xa0], 0xcfcecdcc
mov dword [esp + 0xa4], 0xd3d2d1d0
mov dword [esp + 0xa8], 0xa06a5e5e
mov dword [esp + 0xac], 0xa6667538
mov dword [esp + 0xb0], 0x26a161de
mov dword [esp + 0xb4], 0x57565554
mov dword [esp + 0xb8], 0x1bb20018
mov dword [esp + 0xbc], 0x5f7211d5
mov dword [esp + 0xc0], 0x5bc3ec10
mov dword [esp + 0xc4], 0x6f464544
mov dword [esp + 0xc8], 0x434241a8
mov dword [esp + 0xcc], 0x1c5054c
mov dword [esp + 0xd0], 0x3dc10168
mov dword [esp + 0xd4], 0xc9fd3d5c
mov dword [esp + 0xd8], 0x73727170
mov dword [esp + 0xdc], 0x5332c808
mov dword [esp + 0xe0], 0x4bf33078
mov dword [esp + 0xe4], 0x67e8aa2c
mov dword [esp + 0xe8], 0x63626160
mov dword [esp + 0xec], 0x276e6d6c
mov dword [esp + 0xf0], 0x566d73e1
mov dword [esp + 0xf4], 0x97969594
mov dword [esp + 0xf8], 0xbfe61ad8
mov dword [esp + 0xfc], 0x7ecfd59c
mov byte [esp + 0x100], 0x98
mov byte [esp + 0x105], 0
mov dword [esp + 0x101], 0
xor eax, eax
mov ecx, eax
add cl, 4
xor cl, byte [esp + eax + 0x78]
add cl, 0xec
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0x8e
jne 0x4210e0
lea eax, [esp + 0x148]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x138]
push eax
push 0x88
push edx
push edi
call fcn.00440090
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
xor ecx, ecx
or eax, edx
je 0x4212fd
mov dword [esp + 0x148], 0x2b8c8b78
mov byte [esp + 0x14c], 0x10
mov dword [esp + 0x14d], 0
mov word [esp + 0x151], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x85
xor al, byte [esp + ecx + 0x148]
add al, 0x67
mov byte [esp + ecx + 0x148], al
inc ecx
cmp ecx, 0xb
jne 0x421160
movzx eax, byte [esp + 0x148]
test al, al
je 0x42119b
lea ecx, [esp + 0x149]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421190
mov byte [esi], 0
lea eax, [esp + 0x130]
lea ecx, [esp + 0x138]
push 0
push 8
push eax
push edi
call fcn.00440090
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x421e7d
mov dword [esp + 0x148], 0x3fd0d0c2
mov byte [esp + 0x14c], 0x48
mov dword [esp + 0x14d], 0
mov byte [esp + 0x151], 0
mov eax, 0xf3
mov ecx, 0xc
nop
nop
nop
mov edi, ecx
and edi, 0x2a
mov edx, eax
and edx, 0xd5
or edx, edi
xor dl, byte [esp + eax + 0x55]
xor dl, 0x2a
add dl, 0x41
mov byte [esp + eax + 0x55], dl
inc eax
dec ecx
cmp eax, 0xfd
jne 0x421200
movzx eax, byte [esp + 0x148]
test al, al
je 0x42124b
lea ecx, [esp + 0x149]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421240
mov byte [esi], 0
lea eax, [esp + 0x128]
lea edx, [esp + 0x64]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.0043f5c0
mov eax, dword [esp + 0x64]
xor ebx, ebx
cmp eax, dword [esp + 0x68]
je 0x421e7f
mov dword [esp + 0x148], 0xc7666763
mov byte [esp + 0x14c], 0xd8
mov dword [esp + 0x14d], 0
mov word [esp + 0x151], 0
mov eax, ebx
and eax, 0xd
mov ecx, ebx
and ecx, 2
mov edx, ebx
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
mov eax, ebx
xor eax, 0xaf
add eax, edx
add eax, ecx
xor al, byte [esp + ebx + 0x148]
add al, 0x95
mov byte [esp + ebx + 0x148], al
inc ebx
cmp ebx, 0xb
jne 0x4212a0
movzx eax, byte [esp + 0x148]
test al, al
je 0x42130a
lea ecx, [esp + 0x149]
lea edx, [esp + 0x78]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4212f0
jmp 0x42130e
mov dword [esp + 0xc], 0
jmp 0x421e83
lea edx, [esp + 0x78]
mov byte [esi], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x110], ecx
cmp eax, ecx
je 0x421e7d
mov ecx, 2
sub ecx, edx
mov dword [esp + 0x10c], ecx
xor ebx, ebx
lea edi, [esp + 0x34]
jmp 0x42135b
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x114]
add eax, 8
cmp eax, dword [esp + 0x110]
je 0x421f41
mov dword [esp + 0xc], ebx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x114], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
push 0x198
push 0
lea eax, [esp + 0x150]
push eax
call fcn.0040cf00
add esp, 0xc
xor ebx, ebx
jmp 0x42139e
lea edi, [esp + 0x34]
inc ebx
cmp ebx, 0xb
je 0x421590
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x154]
push eax
push dword [esp + 0x40]
push dword [esp + 0x18]
call fcn.0043f410
test eax, eax
js 0x421394
cmp byte [esp + 0x218], 0
sete al
xor al, 0x31
cmp byte [esp + 0x219], 0
mov byte [esp + 0x4c], al
sete cl
xor cl, 0x31
mov byte [esp + 0x4d], cl
cmp byte [esp + 0x21a], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x4e], cl
cmp byte [esp + 0x2d8], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x4f], cl
mov word [esp + 0x50], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x4d]
inc ecx
test al, al
jne 0x421420
mov byte [esi + ecx], 0
movzx eax, byte [esp + 0x21a]
test al, al
jne 0x4215b0
mov edx, dword [esp + 0x18c]
or edx, dword [esp + 0x188]
je 0x4215b0
add esi, ecx
mov dword [esp + 0x78], 0x67c5ccfd
mov byte [esp + 0x7c], 0x68
lea eax, [esp + 0x7d]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x23dbc497
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x23dbc41f]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xd
mov byte [esp + eax - 0x23dbc41f], cl
inc eax
cmp eax, 0x23dbc4a2
jne 0x421480
movzx eax, byte [esp + 0x78]
test al, al
je 0x4214cb
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 0x4214c0
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0x1c1d1a1b
mov word [esp + 0x7c], 0
mov eax, 0xa31f097a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5ce0f6fe]
xor ecx, eax
mov edx, ecx
and edx, 0x1d
xor ecx, 0x9d
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x5ce0f6fe], cl
inc eax
cmp eax, 0xa31f0980
jne 0x421500
mov eax, dword [0x450d3c]
test eax, eax
je 0x421390
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x450d40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421563
inc edx
cmp eax, edx
jne 0x421550
jmp 0x421390
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421390
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x450d44]
push eax
call fcn.00441410
add esp, 0x14
jmp 0x421390
movzx eax, byte [esp + 0x21a]
test al, al
jne 0x4215ba
jmp 0x421340
add esi, ecx
test al, al
je 0x421340
mov dword [esp + 4], esi
call fcn.00404fe0
mov dword [esp + 0x30], eax
push eax
call fcn.004049a0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x78], 0xbb696d67
mov byte [esp + 0x7c], 0xb0
lea eax, [esp + 0x7d]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x5d
mov esi, 0xa2
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x1b]
mov ebx, edx
not ebx
or ebx, eax
add ebx, edx
mov edi, 0xfe
sub edi, ebx
mov ecx, esi
and ecx, edx
mov ebx, eax
xor ebx, edx
add ebx, edx
sub ebx, ecx
and ebx, edi
add bl, 0x2f
mov byte [esp + eax + 0x1b], bl
inc eax
dec esi
cmp eax, 0x68
jne 0x421600
movzx eax, byte [esp + 0x78]
test al, al
mov esi, dword [esp + 4]
je 0x421660
lea edx, [esp + 0x79]
lea ecx, [esp + 0x34]
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 0x421650
jmp 0x421664
lea ecx, [esp + 0x34]
mov byte [esi], 0
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
xor ebx, ebx
mov edi, eax
or edi, edx
je 0x4216b0
push 0
push 0
push 0x40
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.0043f410
test eax, eax
js 0x4216b6
lea ecx, [esp + 0x34]
mov edx, edi
push dword [esp]
call fcn.00423990
add esp, 4
jmp 0x4216b8
mov edi, esi
xor eax, eax
jmp 0x4216ba
xor eax, eax
mov edi, esi
mov dword [esp + 0x78], 0x6b003807
mov byte [esp + 0x7c], 0x90
mov dword [esp + 0x7d], 0
nop
movzx ecx, byte [esp + ebx + 0x78]
mov edx, ebx
not edx
or edx, 0x24850865
add edx, ebx
mov esi, ebx
xor esi, 0x24850865
lea edx, [esi + edx*2]
add edx, 2
xor edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add cl, 6
mov byte [esp + ebx + 0x78], cl
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
cmp ebx, 9
jb 0x4216d0
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x421740
lea edx, [esp + 0x79]
mov esi, edi
mov ebx, dword [esp + 0xc]
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 0x421730
jmp 0x421746
mov esi, edi
mov ebx, dword [esp + 0xc]
mov byte [esi], 0
test al, al
lea edi, [esp + 0x34]
je 0x4218f0
push dword [esp]
call fcn.00404de0
add esp, 4
test eax, eax
je 0x4218fc
mov eax, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x12c]
push ebx
push edx
push eax
call fcn.0043f410
test eax, eax
mov dword [esp + 4], esi
js 0x421a90
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043f410
test eax, eax
js 0x421a90
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x1c]
push edi
push edx
push eax
call fcn.0043f410
test eax, eax
js 0x421a90
cmp byte [esp + 0x27], 0
lea eax, [esp + 0x10]
mov dword [esp + 8], eax
js 0x421906
mov dword [esp + 0x4c], 0x39a73b87
mov dword [esp + 0x50], 0x25b82793
mov dword [esp + 0x54], 0x216e2344
mov dword [esp + 0x58], 0x2db22f8f
mov dword [esp + 0x5c], 0x298e2b83
mov dword [esp + 0x60], 0x1728
mov eax, 0x90937a8b
mov ecx, 0x6f6c85c9
nop
movzx esi, byte [esp + eax + 0x6f6c85c1]
mov edx, eax
and edx, esi
add edx, edx
mov edi, esi
sub edi, edx
lea ebx, [eax + edi]
add ebx, 0xab
sub edx, esi
add edx, ecx
and edx, 0x62
and ebx, 0x9d
sub ebx, edx
mov byte [esp + eax + 0x6f6c85c1], bl
inc eax
dec ecx
cmp eax, 0x90937aa3
jne 0x421850
movzx ebx, word [esp + 0x4c]
test bx, bx
je 0x42195e
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 8]
mov edx, ecx
mov dword [esp], ecx
mov esi, dword [esp + 4]
jmp 0x4218bc
movzx ebx, word [eax]
test bx, bx
je 0x421977
movzx edi, word [edx]
test di, di
je 0x42196c
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp di, bx
je 0x4218de
mov dword [esp], ecx
mov edx, ecx
je 0x4218b0
lea eax, [esp + 0x4c]
jmp 0x4218b0
mov dword [esp], 0
jmp 0x421e66
mov al, 1
mov dword [esp], eax
jmp 0x421e66
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, ebx
or eax, edi
je 0x421a90
mov eax, dword [esp + 0x18]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp], ecx
mov eax, ecx
jns 0x421930
mov eax, 0xffffffff
push eax
call fcn.0040ce80
add esp, 4
lea ecx, [esp + 0x34]
push 0
push 0
push dword [esp + 8]
mov dword [esp + 0x14], eax
push eax
push edi
push ebx
call fcn.0043f410
test eax, eax
jns 0x421815
jmp 0x421a90
mov eax, dword [esp + 8]
mov esi, dword [esp + 4]
lea edx, [esp + 0x78]
jmp 0x421988
lea ebx, [esp + 0x78]
mov edx, ebx
jmp 0x421a6f
lea ebx, [esp + 0x78]
mov edx, ebx
mov eax, dword [esp]
test eax, eax
je 0x421a6f
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x421a6f
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
nop
cmp di, 0x5c
je 0x4219ba
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x4219a0
mov ebx, edx
jmp 0x421a6f
mov ebx, edx
test ecx, ecx
je 0x421a66
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x421a06
mov ebx, edx
xor edi, edi
mov dword [esp], esi
nop
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]
add ebx, 2
inc edi
cmp esi, edi
jne 0x4219e0
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x78]
jmp 0x421a0a
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x421a66
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 0x421a10
lea edx, [esp + 0x78]
mov word [ebx], 0
mov esi, dword [esp + 4]
cmp byte [esp + 0x27], 0
mov edi, edx
jns 0x421a88
push dword [esp + 8]
call fcn.0040ce90
lea edi, [esp + 0x7c]
add esp, 4
cmp edi, ebx
jne 0x421b36
mov dword [esp + 0x10], 0x41d0470f
mov dword [esp + 0x14], 0x4dd343ed
mov dword [esp + 0x18], 0x49d84fe5
mov dword [esp + 0x1c], 0xb5d64be3
mov dword [esp + 0x20], 0xb1b6b725
mov dword [esp + 0x24], 0
mov eax, 0xca1ddf71
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x35e2209f]
xor ecx, eax
add ecx, 0x1da106a
mov edx, ecx
and edx, 0x4a
xor ecx, 0xca
lea ecx, [ecx + edx*2]
add cl, 0x97
mov byte [esp + eax + 0x35e2209f], cl
inc eax
cmp eax, 0xca1ddf89
jne 0x421ad0
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x78]
mov ebx, edi
test ax, ax
je 0x421b31
lea ecx, [esp + 0x12]
mov ebx, edi
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 0x421b20
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 edi, edx
mov dword [esp], edx
mov ecx, edx
and ecx, 0xfffffffc
lea eax, [esi + ecx]
lea edx, [esp + ecx]
add edx, 0x78
mov ecx, edi
not ecx
or ecx, 3
mov dword [esp + 8], ecx
add ecx, edi
inc ecx
mov dword [esp + 0x44], ecx
shr ecx, 1
mov dword [esp + 0x2c], edx
mov edi, eax
mov esi, dword [esp + 0x2c]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x44]
not edi
or edi, 1
mov ecx, dword [esp]
add ecx, esi
add ecx, edi
inc ecx
inc ecx
je 0x421c5f
mov esi, dword [esp + 0x44]
and esi, 0xfffffffe
add edx, esi
add eax, esi
mov esi, ecx
and esi, 7
mov dword [esp + 0x2c], edi
je 0x421be7
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx + edi]
mov byte [eax + edi], cl
inc edi
cmp esi, edi
jne 0x421bc0
add edx, edi
add eax, edi
mov ecx, dword [esp + 0x10c]
mov esi, dword [esp + 0x2c]
add esi, ecx
add esi, dword [esp + 8]
add esi, ebx
sub esi, edi
jmp 0x421be9
mov esi, ecx
lea ecx, [esp + 0x78]
mov edi, dword [esp + 8]
sub edi, ecx
add edi, dword [esp + 0x2c]
lea ecx, [ebx + edi]
inc ecx
cmp ecx, 7
jb 0x421c5f
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx + edi]
mov byte [eax + edi], cl
movzx ecx, byte [edx + edi + 1]
mov byte [eax + edi + 1], cl
movzx ecx, byte [edx + edi + 2]
mov byte [eax + edi + 2], cl
movzx ecx, byte [edx + edi + 3]
mov byte [eax + edi + 3], cl
movzx ecx, byte [edx + edi + 4]
mov byte [eax + edi + 4], cl
movzx ecx, byte [edx + edi + 5]
mov byte [eax + edi + 5], cl
movzx ecx, byte [edx + edi + 6]
mov byte [eax + edi + 6], cl
movzx ecx, byte [edx + edi + 7]
mov byte [eax + edi + 7], cl
mov ecx, esi
add edi, 8
cmp esi, edi
jne 0x421c10
mov dword [esp + 0x10], 0x6d7d7fda
mov word [esp + 0x14], 0xdfc6
lea ebx, [esp + 0x16]
mov byte [ebx + 4], 0
mov dword [ebx], 0
mov eax, 0xaf
mov ecx, 0x50
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x9f]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, eax
and edx, ecx
or edx, esi
add dl, 0x95
mov byte [esp + eax - 0x9f], dl
inc eax
dec ecx
cmp eax, 0xba
jne 0x421c90
mov esi, dword [esp + 4]
add esi, dword [esp]
movzx eax, byte [esp + 0x10]
test al, al
mov edx, dword [ebp + 0x14]
je 0x421cdb
lea ecx, [esp + 0x11]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421cd0
mov byte [esi], 0
mov edi, dword [edx]
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 0x421cf0
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
mov edx, dword [esp]
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421d2b
mov eax, 0xffffffff
jmp 0x421d34
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040ce80
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 4], eax
test cx, cx
je 0x421d61
add edi, 2
mov eax, dword [esp + 4]
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421d50
mov word [eax], 0x2f
mov dword [esp + 0x10], 0x13641147
mov dword [esp + 0x14], 0x1f811d71
mov dword [esp + 0x18], 0x1b86194e
mov dword [esp + 0x1c], 0x79a059c
mov word [esp + 0x20], 0x100
mov byte [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 4
xor dl, byte [esp + ecx + 0x10]
add dl, 0xec
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x17
jne 0x421da0
add eax, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x421de1
lea edx, [esp + 0x7a]
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 0x421dd0
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421e11
lea edx, [esp + 0x12]
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 0x421e00
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x30]
call fcn.00405c70
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421e30
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040d760
mov dword [esp], eax
push edi
call fcn.00405d00
add esp, 4
push ebx
call fcn.0040ce90
add esp, 4
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x34]
push dword [esp + 0x30]
call fcn.00404e20
add esp, 4
and bl, 1
or bl, byte [esp]
jmp 0x421344
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov ebx, esi
lea ecx, [esp + 0x34]
call fcn.0043ebb0
mov dword [esp + 0x148], 0xc1aab1a5
mov byte [esp + 0x14c], 0xd4
mov dword [esp + 0x14d], 0
mov dword [esp + 0x150], 0
lea eax, [esp + 0x148]
mov ecx, 0x534c6031
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
mov edi, ecx
and edi, 0x404c2015
lea edx, [ecx - 0x40000000]
and edx, 0x1300402a
or edx, edi
xor edx, esi
lea esi, [edx + 7]
and edx, 1
and esi, 0xfe
or esi, edx
not esi
lea edx, [esi + edx*2]
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x534c6025
jne 0x421ed0
movzx eax, byte [esp + 0x148]
test al, al
je 0x421f2d
lea ecx, [esp + 0x149]
mov edx, dword [ebp + 0xc]
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421f20
jmp 0x421f30
mov edx, dword [ebp + 0xc]
mov byte [ebx], 0
mov dword [edx], ebx
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x64]
and bl, 1
test eax, eax
je 0x421e7f
cmp eax, dword [esp + 0x68]
je 0x421e7f
push eax
call fcn.0040ce90
add esp, 4
mov dword [esp + 0x64], 0
jmp 0x421e7f