Function at 0x41fed0
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 esi, dword [ebp + 0xc]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0x916a6b7d
mov byte [esp + 0x144], 0x9c
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x5a
xor dl, byte [esp + ecx + 0x140]
add dl, 0x3e
mov byte [esp + ecx + 0x140], dl
inc ecx
cmp ecx, 0xb
jne 0x41ff30
mov edi, dword [esi]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41ff7b
lea edx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41ff70
mov byte [edi], 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 esi, [esp + 0x34]
push ecx
push edx
push esi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.004225f0
add esp, 0x18
test al, al
je 0x4205ad
mov dword [esp + 0x140], 0x1f77857c
mov byte [esp + 0x144], 8
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 0x9ff4ca03
mov ecx, 0xfc
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x600b373d]
mov esi, ecx
xor esi, eax
and esi, edx
xor esi, eax
lea ebx, [esi + esi]
not ebx
add ebx, esi
and ebx, eax
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0xf1
mov byte [esp + eax + 0x600b373d], dl
inc eax
dec ecx
cmp eax, 0x9ff4ca0d
jne 0x420000
movzx eax, byte [esp + 0x140]
test al, al
je 0x42005b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420050
mov dword [esp + 4], edi
mov byte [edi], 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], 0xe2faf631
mov dword [esp + 0x144], 0xd0eeb00
mov dword [esp + 0x148], 0x271302ed
mov dword [esp + 0x14c], 0x18191e1f
mov dword [esp + 0x150], 0xf2fb25e8
mov dword [esp + 0x154], 0xedf6f402
mov dword [esp + 0x158], 0xecede2e3
mov dword [esp + 0x15c], 0xe4d1191a
mov dword [esp + 0x160], 0x1aff12ff
mov dword [esp + 0x164], 0x808eeff
mov dword [esp + 0x168], 0xe6c11cfc
mov dword [esp + 0x16c], 0xc7e8e506
mov dword [esp + 0x170], 0xfc2a02c8
mov dword [esp + 0x174], 0x3c3dfafe
mov dword [esp + 0x178], 0x37c1fa3b
mov dword [esp + 0x17c], 0xc8c9cecf
mov dword [esp + 0x180], 0x2237253f
mov dword [esp + 0x184], 0xd0edccd5
mov dword [esp + 0x188], 0xdcd33dc0
mov dword [esp + 0x18c], 0xe1d9dedf
mov dword [esp + 0x190], 0xa4a5dace
mov dword [esp + 0x194], 0x5ab39ea7
mov dword [esp + 0x198], 0x939ebe9a
mov dword [esp + 0x19c], 0xb59abdbe
mov dword [esp + 0x1a0], 0xb4b5aaab
mov dword [esp + 0x1a4], 0x52828e43
mov dword [esp + 0x1a8], 0x49bf42b3
mov dword [esp + 0x1ac], 0xb8855c87
mov dword [esp + 0x1b0], 0x8485babb
mov dword [esp + 0x1b4], 0x94818687
mov dword [esp + 0x1b8], 0x8e7b7ebf
mov dword [esp + 0x1bc], 0x88898e8f
mov dword [esp + 0x1c0], 0x7b89687d
mov dword [esp + 0x1c4], 0xaf66aa97
mov byte [esp + 0x1c8], 0xd0
mov word [esp + 0x1cd], 0
mov dword [esp + 0x1c9], 0
mov eax, 0xee
mov ecx, 0x11
movzx esi, byte [esp + eax + 0x52]
mov ebx, eax
and ebx, esi
mov edi, ecx
and edi, esi
mov edx, eax
xor edx, esi
sub edx, esi
add edx, ebx
or edx, edi
add dl, 0x5a
mov byte [esp + eax + 0x52], dl
inc eax
dec ecx
cmp eax, 0x17d
jne 0x420220
mov dword [esp + 0x60], 0x48b6a2a2
mov dword [esp + 0x64], 0x287b95d0
mov dword [esp + 0x68], 0xdf3478b8
mov dword [esp + 0x6c], 0xfbfac5c4
mov dword [esp + 0x70], 0xc76afa7d
mov dword [esp + 0x74], 0xebe34484
mov dword [esp + 0x78], 0xf7f6f1f0
mov dword [esp + 0x7c], 0x93fa4c8c
mov dword [esp + 0x80], 0x8cb62d6f
mov dword [esp + 0x84], 0x1f1e2a8e
mov dword [esp + 0x88], 0x1b1a1d1c
mov dword [esp + 0x8c], 0xe7e61918
mov dword [esp + 0x90], 0x98667272
mov dword [esp + 0x94], 0xaa6a5500
mov dword [esp + 0x98], 0x12a969e2
mov dword [esp + 0x9c], 0xb0a1514
mov dword [esp + 0xa0], 0x77ee5870
mov dword [esp + 0xa4], 0x32649b5
mov dword [esp + 0xa8], 0x78fbc78
mov dword [esp + 0xac], 0x633a0504
mov dword [esp + 0xb0], 0x3f3e3920
mov dword [esp + 0xb4], 0x498d453c
mov dword [esp + 0xb8], 0x45894910
mov dword [esp + 0xbc], 0x81954d6c
mov dword [esp + 0xc0], 0x2f2e2928
mov dword [esp + 0xc4], 0x7669050
mov dword [esp + 0xc8], 0x179f5820
mov dword [esp + 0xcc], 0x5be0de5c
mov dword [esp + 0xd0], 0x5f5e5958
mov dword [esp + 0xd4], 0x2b525d5c
mov dword [esp + 0xd8], 0x62555fe9
mov dword [esp + 0xdc], 0x4b4a5554
mov dword [esp + 0xe0], 0x6b32f630
mov dword [esp + 0xe4], 0xa213354c
mov byte [esp + 0xe8], 0x40
mov byte [esp + 0xed], 0
mov dword [esp + 0xe9], 0
xor eax, eax
mov cl, 0xad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x60]
xor dl, cl
mov ch, 0x65
sub ch, dl
mov byte [esp + eax + 0x60], ch
inc eax
dec cl
cmp eax, 0x8e
jne 0x4203d0
lea eax, [esp + 0x140]
lea edx, [esp + 0x60]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea ebx, [esp + 0x40]
push ebx
call fcn.00440010
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ecx, ecx
or eax, edx
je 0x4205be
mov dword [esp + 0x140], 0x49e0fdec
mov byte [esp + 0x144], 0x6c
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
nop
nop
nop
lea eax, [ecx + ecx]
mov edx, eax
and edx, 0x18
mov esi, ecx
xor ecx, 0x6c
add ecx, edx
xor cl, byte [esp + esi + 0x140]
add cl, 0xe4
mov byte [esp + esi + 0x140], cl
mov ecx, esi
xor ecx, 1
and eax, 2
add ecx, eax
cmp ecx, 0xc
jb 0x420450
movzx eax, byte [esp + 0x140]
test al, al
mov edi, dword [esp + 4]
je 0x4204ab
lea ecx, [esp + 0x141]
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 0x4204a0
mov byte [edi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push ebx
call fcn.00440010
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x42138f
mov ebx, edi
mov dword [esp + 0x140], 0x67000012
mov byte [esp + 0x144], 0x68
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0xe7
mov ecx, 0x80f4c618
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x59]
lea esi, [eax - 0xc0]
lea edi, [ecx + 0x7f0b39e8]
and edi, 6
and esi, 0x39
or esi, edi
mov edi, ecx
or edi, edx
xor esi, 0xc6
and esi, eax
not edx
or edx, esi
not edi
lea esi, [edx + edx]
not esi
add esi, edx
or esi, edi
lea edi, [esi - 0x7b382184]
mov edx, esi
and edx, 1
add edx, esi
add edx, 0x84c7de7c
mov esi, edi
xor edi, 1
add edx, edi
and esi, 0xfe
sub edx, esi
mov byte [esp + eax + 0x59], dl
inc eax
dec ecx
cmp eax, 0xf3
jne 0x420520
movzx eax, byte [esp + 0x140]
test al, al
je 0x4205c7
lea ecx, [esp + 0x141]
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4205a0
jmp 0x4205c9
mov dword [esp + 4], edi
mov dword [esp + 0x30], 0
jmp 0x421399
mov edi, dword [esp + 4]
jmp 0x421391
mov edi, ebx
mov byte [edi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.0043f500
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x42138f
mov dword [esp + 4], edi
mov dword [esp + 0x140], 0xc15bc753
mov dword [esp + 0x144], 0xcd6ec36f
mov dword [esp + 0x148], 0xc961cf65
mov dword [esp + 0x14c], 0xb565cb1e
mov dword [esp + 0x150], 0xb119b72c
lea eax, [esp + 0x154]
mov dword [esp + 8], eax
mov word [esp + 0x154], 0xb3b0
mov dword [esp + 0x156], 0
mov byte [esp + 0x15a], 0
mov edi, 0xaa7fbe31
mov edx, 0x158041ce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x5580430f]
mov dword [esp + 0x2c], eax
lea ebx, [eax + eax]
not ebx
add ebx, eax
lea eax, [ebx + ebx]
not eax
add eax, ebx
mov esi, ebx
and esi, 0x66b2bb69
and eax, 0x994d4496
or eax, esi
mov ecx, edi
and ecx, 0x2232ba69
mov esi, edx
and esi, 0x11004096
or esi, ecx
xor esi, eax
lea eax, [edx - 0x15804100]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov ecx, eax
not ecx
or ecx, dword [esp + 0xc]
or ebx, edi
not esi
and esi, ebx
add eax, ecx
inc eax
or eax, esi
lea ecx, [eax + eax]
mov esi, ecx
and esi, 0x14
xor eax, 0xa
add eax, esi
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + edi + 0x5580430f], al
inc edi
dec edx
cmp edi, 0xaa7fbe4c
jne 0x420670
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 + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x76667a3
mov byte [esp + 0x144], 0xf8
mov dword [esp + 0x145], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 0xd
mov edx, eax
and edx, 2
mov esi, eax
or esi, 2
imul esi, edx
xor edx, 2
imul edx, ecx
lea ecx, [eax + eax]
mov edi, eax
sub edi, ecx
add edi, esi
lea esi, [edi + edx]
add edi, edx
add edi, 0xbecfe67f
movzx edx, byte [esp + eax + 0x140]
and edi, edx
add edi, edi
add esi, edx
add esi, 0x15e09cd8
mov edx, esi
sub edx, edi
and esi, 1
or edx, 1
add edx, esi
add dl, 0x2b
mov byte [esp + eax + 0x140], dl
xor eax, 1
and ecx, 2
add eax, ecx
cmp eax, 9
jb 0x420750
movzx eax, byte [esp + 0x140]
test al, al
je 0x4207dd
lea ecx, [esp + 0x141]
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4207d0
jmp 0x4207e1
mov edi, dword [esp + 4]
mov byte [edi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x42138f
xor ecx, ecx
lea esi, [esp + 0x34]
jmp 0x42082b
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x421485
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040cfd0
add esp, 0xc
xor ebx, ebx
jmp 0x420872
mov edi, dword [esp + 4]
lea esi, [esp + 0x34]
inc ebx
cmp ebx, 0xb
je 0x420ac0
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x54]
push dword [esp + 0x1c]
call fcn.0043f390
test eax, eax
js 0x420868
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x10], cl
sete al
xor al, 0x31
mov byte [esp + 0x11], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x12], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x13], al
mov word [esp + 0x14], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + eax], cl
movzx ecx, byte [esp + eax + 0x11]
inc eax
test cl, cl
jne 0x4208f0
mov byte [edi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x420ab0
cmp byte [esp + 0x210], 0
mov edx, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
mov dword [esp + 0xc], ebx
jne 0x42093b
mov ebx, edi
mov edi, edx
or edi, esi
mov edi, ebx
je 0x420ab0
cmp byte [esp + 0x2d0], 0
jne 0x420950
xor edx, 1
or edx, esi
je 0x420ab0
add edi, eax
mov dword [esp + 0x60], 0x4fed14e5
mov byte [esp + 0x64], pe_nt_image_headers32
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xeb
xor cl, byte [esp + eax + 0x60]
add cl, 0x69
mov byte [esp + eax + 0x60], cl
inc eax
cmp eax, 0xb
jne 0x420980
movzx eax, byte [esp + 0x60]
test al, al
je 0x4209bb
lea ecx, [esp + 0x61]
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 0x4209b0
mov dword [esp + 4], edi
mov byte [edi], 0
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xff676980
mov dword [esp + 0xf0], 0x60676665
xor edx, edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xf0]
mov dword [esp + 0x2c], eax
mov edi, edx
and edi, 2
mov esi, ecx
xor esi, 0xc11c8ee9
add esi, edi
mov edi, esi
not edi
or edi, eax
add edi, esi
inc edi
mov eax, edi
or eax, 0xfd
inc eax
mov ebx, edi
and ebx, 0xfd
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
sub ebx, edi
add ebx, esi
add bl, byte [esp + 0x2c]
add bl, 0x73
mov byte [esp + ecx + 0xf0], bl
inc ecx
add edx, 2
cmp ecx, 4
jne 0x4209f0
mov eax, dword [0x451e48]
test eax, eax
mov ebx, dword [esp + 0xc]
je 0x420860
mov ecx, dword [esp + 0xf0]
xor edx, edx
mov esi, dword [0x451e4c]
nop
nop
nop
cmp dword [esi + edx*8], 0x3568c09b
je 0x420a83
inc edx
cmp eax, edx
jne 0x420a70
jmp 0x420860
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x420860
lea ecx, [esp + 0x60]
push ecx
push 0
push 2
push eax
push dword [0x451e50]
call fcn.00441a80
add esp, 0x14
jmp 0x420860
add edi, eax
lea esi, [esp + 0x34]
test cl, cl
jne 0x420ad0
jmp 0x420810
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x420810
mov dword [esp + 4], edi
call fcn.00404fc0
mov dword [esp + 0x2c], eax
push eax
call fcn.00404980
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x60], 0x87215d1b
mov byte [esp + 0x64], 0xb8
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
mov edi, 0x25
nop
nop
movzx ecx, byte [esp + eax + 0x60]
mov edx, eax
xor edx, 0x5c17a65f
lea ebx, [edi + edx]
add ebx, 0xffffffdb
and ebx, ecx
add dl, cl
add bl, bl
sub dl, bl
movzx edx, dl
add edx, edi
mov byte [esp + eax + 0x60], dl
inc eax
add edi, 2
cmp eax, 0xb
jne 0x420b10
movzx eax, byte [esp + 0x60]
test al, al
mov edx, dword [esp + 4]
je 0x420b5b
lea ecx, [esp + 0x61]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420b50
mov dword [esp + 4], edx
mov byte [edx], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, word [eax + ecx]
movzx esi, word [esp + ecx + 0x2de]
test di, di
je 0x420b89
add ecx, 2
cmp di, si
je 0x420b70
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x420bf0
mov dword [esp + 8], eax
lea ecx, [esp + 0x34]
push 0
push 0
push 0x40
lea eax, [esp + 0x6c]
push eax
push edx
push dword [esp + 0x1c]
call fcn.0043f390
test eax, eax
js 0x420bf0
xor eax, eax
cmp di, si
sete al
lea esi, [esp + 0x34]
mov ecx, esi
lea edx, [esp + 0x60]
push eax
push dword [esp + 0x10]
call fcn.004231d0
add esp, 8
mov dword [esp + 8], eax
mov edi, dword [esp + 4]
jmp 0x420c00
mov dword [esp + 8], 0
mov edi, dword [esp + 4]
lea esi, [esp + 0x34]
mov dword [esp + 0x60], 0x9f38303b
mov byte [esp + 0x64], 0x88
lea eax, [esp + 0x65]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
mov edx, ebx
and edx, 6
mov ecx, eax
xor ecx, 0xe3
add ecx, edx
xor cl, byte [esp + eax + 0x60]
add cl, 0x91
mov byte [esp + eax + 0x60], cl
inc eax
add ebx, 2
cmp eax, 0xc
jne 0x420c20
movzx eax, byte [esp + 0x60]
test al, al
je 0x420c70
lea ecx, [esp + 0x61]
mov ebx, dword [esp + 8]
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 0x420c60
jmp 0x420c74
mov ebx, dword [esp + 8]
mov byte [edi], 0
push dword [esp + 0xc]
call fcn.00404dc0
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x421375
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043f390
test eax, eax
mov dword [esp + 4], edi
js 0x421040
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043f390
test eax, eax
js 0x421040
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 0x18
lea esi, [esp + 0xfc]
push esi
push edx
push eax
call fcn.0043f390
test eax, eax
js 0x421040
cmp byte [esp + 0x107], 0
lea edx, [esp + 0xf0]
js 0x420df2
mov dword [esp + 0x10], 0xb11b8ffb
mov dword [esp + 0x14], 0xb520b3d7
mov dword [esp + 0x18], 0xb9f2b794
mov dword [esp + 0x1c], 0xbd2ebbdb
mov dword [esp + 0x20], 0xa1c2bfdf
mov word [esp + 0x24], 0xa3a0
mov dword [esp + 0x26], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x1d
xor cl, byte [esp + eax + 0x10]
add cl, 0x6f
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x1a
jne 0x420d90
movzx esi, word [esp + 0x10]
test si, si
mov dword [esp + 0x44], edx
je 0x420e75
lea eax, [esp + 0x10]
mov ecx, edx
jmp 0x420dcc
movzx esi, word [eax]
test si, si
je 0x420e65
movzx edi, word [ecx]
test di, di
je 0x420e58
add eax, 2
add ecx, 2
lea ebx, [edx + 2]
cmp di, si
je 0x420dea
mov edx, ebx
mov ecx, ebx
je 0x420dc0
lea eax, [esp + 0x10]
jmp 0x420dc0
mov esi, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov eax, esi
or eax, ebx
je 0x421040
mov eax, dword [esp + 0xf8]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 8], ecx
mov eax, ecx
jns 0x420e26
mov eax, 0xffffffff
push eax
call fcn.0040ce10
add esp, 4
mov edi, eax
lea ecx, [esp + 0x34]
push 0
push 0
push dword [esp + 0x10]
push eax
push ebx
push esi
call fcn.0043f390
mov edx, edi
test eax, eax
mov edi, dword [esp + 4]
jns 0x420d49
jmp 0x421040
lea ebx, [esp + 0x60]
mov edi, dword [esp + 4]
jmp 0x421015
lea ebx, [esp + 0x60]
test edx, edx
mov edi, dword [esp + 4]
je 0x421015
movzx esi, word [edx + 0x14]
lea ebx, [esp + 0x60]
test si, si
je 0x421015
lea eax, [edx + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
cmp si, 0x5c
je 0x420eac
movzx esi, word [edx + ecx + 0x16]
add ecx, 2
test si, si
jne 0x420e90
lea ebx, [esp + 0x60]
jmp 0x421015
lea edx, [esp + 0x60]
mov ebx, edx
test ecx, ecx
je 0x420f52
sar ecx, 1
mov edi, ecx
and edi, 3
je 0x420ef3
xor esi, esi
mov ebx, edx
mov dword [esp + 8], edi
nop
nop
nop
nop
nop
movzx edi, word [eax]
xor edx, edx
test di, di
setne dl
lea eax, [eax + edx*2]
mov word [ebx], di
mov edi, dword [esp + 8]
add ebx, 2
inc esi
cmp edi, esi
jne 0x420ed0
mov edi, ecx
sub edi, esi
jmp 0x420ef7
mov ebx, edx
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x420f52
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x420f00
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
je 0x420f6a
mov edi, dword [esp + 4]
jmp 0x421015
mov dword [esp + 0x10], 0x99cd9bbc
mov dword [esp + 0x14], 0xa5cba7ea
mov dword [esp + 0x18], 0xa1cba3d5
mov dword [esp + 0x1c], 0xadd9afd2
mov dword [esp + 0x20], 0xa9dbabd0
mov word [esp + 0x24], 0xb7a8
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x5ae39fe4
lea ecx, [esp + 0x10]
movzx esi, byte [ecx]
mov edx, eax
or edx, esi
lea edi, [eax - 0x5ae39f00]
and edi, esi
not edx
or edx, edi
lea esi, [edx + edx]
mov edi, 2
sub edi, esi
not edi
and edi, 2
and esi, 2
sub edx, esi
add edx, edi
add dl, 0x79
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x5ae39fc9
jne 0x420fb0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x42100c
lea ecx, [esp + 0x12]
mov edi, dword [esp + 4]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420ff9
jmp 0x421010
mov edi, dword [esp + 4]
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x42102b
push dword [esp + 0x44]
call fcn.0040ce20
add esp, 4
lea edx, [esp + 0x60]
cmp edx, ebx
jne 0x4210e6
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0xc36cc109
mov dword [esp + 0x14], 0xc769c567
mov dword [esp + 0x18], 0xcb64c96f
mov dword [esp + 0x1c], 0xcf5acd65
mov dword [esp + 0x20], 0xb3b2b11f
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
lea edx, [eax + 0x10f30]
and edx, ecx
lea esi, [eax + ecx]
add esi, 0x10f30
add edx, edx
sub esi, edx
mov ecx, esi
and ecx, 0xf
and esi, 0xf0
xor esi, 0xf1
sub ecx, esi
inc cl
mov byte [esp + eax + 0x10], cl
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
cmp eax, 0x14
jb 0x421070
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x60]
mov ebx, edx
test ax, ax
je 0x4210e1
lea ecx, [esp + 0x12]
mov ebx, edx
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 0x4210d0
mov word [ebx], 0
sub ebx, edx
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edx, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [esp + eax]
add edi, 0x60
mov dword [esp + 8], edi
mov esi, ebx
and esi, 3
mov ecx, esi
shr ecx, 1
add eax, edx
mov edx, edi
mov edi, eax
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, dword [esp + 8]
mov ecx, ebx
xor ecx, 2
and ecx, esi
je 0x421150
mov esi, ebx
and esi, 2
movzx edx, byte [edi + esi]
mov byte [eax + esi], dl
cmp ecx, 1
je 0x421150
movzx edx, byte [edi + esi + 1]
mov byte [eax + esi + 1], dl
cmp ecx, 2
je 0x421150
movzx ecx, byte [edi + esi + 2]
mov byte [eax + esi + 2], cl
nop
push 0xa
push 0xb
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x18]
call fcn.00422f90
add esp, 0x10
mov dword [esp + 0x10], 0x3d252b8e
mov dword [esp + 0x14], 0x8d627460
lea ecx, [esp + 0x26]
mov byte [ecx - 0xc], 0
mov word [ecx - 0xe], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xe1
xor dl, byte [esp + ecx + 0x10]
add dl, 0x9b
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xb
jne 0x421190
mov edi, dword [esp + 4]
add edi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x4211cb
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4211c0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4211eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4211e0
mov dword [esp + 4], edi
mov byte [edi], 0xa
mov eax, dword [ebp + 0x14]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421200
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421220
mov eax, 0xffffffff
jmp 0x421229
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040ce10
add esp, 4
movzx ecx, word [esi]
mov edi, eax
test cx, cx
je 0x421261
add esi, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x421250
mov dword [esp + 0xc], eax
mov esi, dword [esp + 4]
inc esi
mov word [edi], 0x2f
mov dword [esp + 0x10], 0x41b04795
mov dword [esp + 0x14], 0x4ddb43af
mov dword [esp + 0x18], 0x49d24f9a
mov dword [esp + 0x1c], 0x75d64bd0
mov word [esp + 0x20], 0x7774
mov dword [esp + 0x22], 0
mov ecx, 0x11
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 1]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xab
mov byte [esp + ecx - 1], dl
inc ecx
cmp ecx, 0x27
jne 0x4212b0
add edi, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x4212f1
lea edx, [esp + 0x62]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4212e0
mov word [edi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
mov dword [esp + 4], esi
je 0x421321
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421310
mov word [edi], 0
mov esi, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405b40
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x421340
mov ecx, dword [ebp + 8]
push esi
push edi
mov esi, dword [esp + 0x14]
push esi
call fcn.0040d720
mov ebx, eax
push edi
call fcn.00405bd0
add esp, 4
push esi
call fcn.0040ce20
add esp, 4
mov edi, dword [esp + 4]
lea esi, [esp + 0x34]
push dword [esp + 0x2c]
call fcn.00404e00
add esp, 4
mov ecx, dword [esp + 0x30]
and cl, 1
or cl, bl
jmp 0x420814
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 4], edi
lea ecx, [esp + 0x34]
call fcn.0043eaa0
mov dword [esp + 0x140], 0xf15a41ad
mov byte [esp + 0x144], 0xcc
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
lea eax, [esp + 0x140]
mov ecx, 0xfa342d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, 0x85
and edx, 0x7a
or edx, esi
lea esi, [ecx - 0x80000000]
mov edi, esi
xor edi, 0x72a9e87a
or esi, 0x80521405
and esi, edi
mov ebx, ecx
and ebx, 0xa8203a
mov edi, ecx
or edi, 0x85
and edi, esi
xor ebx, esi
xor ebx, 0x7a
add ebx, esi
sub ebx, edi
xor ebx, edx
add bl, 0xe6
mov byte [eax], bl
inc eax
dec ecx
cmp ecx, 0xfa3423
jne 0x4213e0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42146d
lea ecx, [esp + 0x141]
mov edx, dword [ebp + 0xc]
mov esi, dword [esp + 4]
nop
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 0x421460
jmp 0x421474
mov edx, dword [ebp + 0xc]
mov esi, dword [esp + 4]
mov byte [esi], 0
mov dword [edx], esi
mov eax, dword [esp + 0x30]
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 0x421391
cmp eax, dword [esp + 0x50]
je 0x421391
push eax
mov esi, ecx
call fcn.0040ce20
mov ecx, esi
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x421391