Function at 0x420030
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, 0x2e0
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0x2bcac1db
mov byte [esp + 0x144], 0x30
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x75
xor dl, byte [esp + ecx + 0x140]
add dl, 0xb7
mov byte [esp + ecx + 0x140], dl
inc ecx
cmp ecx, 0xa
jne 0x420090
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x4200db
lea edx, [esp + 0x141]
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 0x4200d0
mov byte [esi], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea ebx, [esp + 0x38]
push ecx
push edx
push ebx
push dword [edi + 0x10]
push eax
push dword [edi + 0xc]
call fcn.004224e0
add esp, 0x18
test al, al
je 0x4212f4
mov edi, esi
mov dword [esp + 0x140], 0xfb1b1514
mov byte [esp + 0x144], 0xe0
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 0x58ac7829
mov ecx, 0xa75387d6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x58ac76e9]
mov esi, edx
not esi
mov ebx, ecx
xor ebx, edx
sub edx, ebx
mov ebx, ecx
and ebx, esi
and esi, eax
add edx, ebx
or edx, esi
lea esi, [edx + 0x44a1a732]
mov ebx, edx
and ebx, 1
add edx, ebx
add edx, 0x44a1a732
mov ebx, esi
xor esi, 1
add edx, esi
and ebx, 0xfe
sub edx, ebx
mov byte [esp + eax - 0x58ac76e9], dl
inc eax
dec ecx
cmp eax, 0x58ac7831
jne 0x420160
movzx eax, byte [esp + 0x140]
test al, al
je 0x4201dd
lea ecx, [esp + 0x141]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4201d0
jmp 0x4201df
mov edx, edi
mov edi, edx
mov byte [edx], 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], 0xf6eafa3f
mov dword [esp + 0x144], 0xdfdef1d4
mov dword [esp + 0x148], 0x31c1def3
mov dword [esp + 0x14c], 0xd4cbcac9
mov dword [esp + 0x150], 0xc6c92be4
mov dword [esp + 0x154], 0xdfc6c0ca
mov dword [esp + 0x158], 0xd8dfdedd
mov dword [esp + 0x15c], 0xe823eff2
mov dword [esp + 0x160], 0xceeddef1
mov dword [esp + 0x164], 0xd4dcfae9
mov dword [esp + 0x168], 0xf213c0e0
mov dword [esp + 0x16c], 0x9fcf3d6
mov dword [esp + 0x170], 0x8dace04
mov dword [esp + 0x174], 0xc0cf0e0e
mov dword [esp + 0x178], 0xc1f306c5
mov dword [esp + 0x17c], 0x4fbfaf9
mov dword [esp + 0x180], 0x36252b31
mov dword [esp + 0x184], 0xcff1803
mov dword [esp + 0x188], 0x801231c
mov dword [esp + 0x18c], 0xeb0b0a09
mov dword [esp + 0x190], 0x1017161e
mov dword [esp + 0x194], 0x2601ea11
mov dword [esp + 0x198], 0xe5ee02e2
mov dword [esp + 0x19c], 0x37ea0b0e
mov dword [esp + 0x1a0], 0x20272625
mov dword [esp + 0x1a4], 0xed2da15
mov dword [esp + 0x1a8], 0x32d1e2d
mov dword [esp + 0x1ac], 0x34d708d1
mov dword [esp + 0x1b0], 0x30373635
mov dword [esp + 0x1b4], 0x28333231
mov dword [esp + 0x1b8], 0x3a0902c1
mov dword [esp + 0x1bc], 0x443b3a39
mov dword [esp + 0x1c0], 0x6d5b6473
mov dword [esp + 0x1c4], 0xb176be41
mov byte [esp + 0x1c8], 0x8c
mov word [esp + 0x1cd], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x2981e041
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2981df01]
xor ecx, eax
lea edx, [ecx + 0x3a]
mov esi, 0xcf896145
sub esi, ecx
and ecx, 1
mov ebx, esi
not ebx
and esi, 0xa0
and edx, 0x5f
or edx, esi
xor edx, 0xa1
and ebx, 1
or ebx, edx
add ebx, ecx
mov byte [esp + eax - 0x2981df01], bl
inc eax
cmp eax, 0x2981e0d0
jne 0x4203a0
mov dword [esp + 0x78], 0xb4f28286
mov dword [esp + 0x7c], 0x1c51cf2c
mov dword [esp + 0x80], 0x91054ec
mov dword [esp + 0x84], 0x2d2e2f20
mov dword [esp + 0x88], 0x21b62aa7
mov dword [esp + 0x8c], 0x3d0960e0
mov dword [esp + 0x90], 0x11121314
mov dword [esp + 0x94], 0xd50e68d8
mov dword [esp + 0x98], 0xb8f25791
mov dword [esp + 0x9c], 0x31324aba
mov dword [esp + 0xa0], 0x35363730
mov dword [esp + 0xa4], 0x393a3b34
mov dword [esp + 0xa8], 0x84c2b2b6
mov dword [esp + 0xac], 0x823e2f1c
mov dword [esp + 0xb0], 0xfa873bc6
mov dword [esp + 0xb4], 0xfdfefff0
mov dword [esp + 0xb8], 0x31da2434
mov dword [esp + 0xbc], 0xe50a2b8f
mov dword [esp + 0xc0], 0xe165902c
mov dword [esp + 0xc4], 0x5eeefe0
mov dword [esp + 0xc8], 0xe9eaebc4
mov dword [esp + 0xcc], 0x1fa31fe8
mov dword [esp + 0xd0], 0x63a71b34
mov dword [esp + 0xd4], 0xa7ab1738
mov dword [esp + 0xd8], 0xd9dadbdc
mov dword [esp + 0xdc], 0x290ab46c
mov dword [esp + 0xe0], 0x31b574c4
mov dword [esp + 0xe4], 0xcd448608
mov dword [esp + 0xe8], 0xc9cacbcc
mov dword [esp + 0xec], 0x7db6b7c8
mov dword [esp + 0xf0], 0x4ab3b5c3
mov dword [esp + 0xf4], 0xbdbebfb0
mov dword [esp + 0xf8], 0x550ece74
mov dword [esp + 0xfc], 0x8a796fb8
mov byte [esp + 0x100], 0xa4
mov dword [esp + 0x104], 0
mov dword [esp + 0x101], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x78]
mov edx, ecx
xor edx, 0x22492fb5
mov esi, eax
and esi, 0x94
sub esi, edx
lea edx, [ebx + ebx]
not edx
add edx, ebx
or edx, esi
not ebx
and ebx, esi
not edx
or edx, ebx
lea esi, [edx - 0x54921178]
mov ebx, esi
xor ebx, 0xfe
or esi, 1
and esi, ebx
or edx, 1
add edx, esi
add dl, 0x88
mov byte [esp + ecx + 0x78], dl
inc ecx
add eax, 2
cmp ecx, 0x90
jne 0x420580
lea eax, [esp + 0x140]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00441010
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x42069d
mov dword [esp + 0x140], 0x76c6fa0
mov byte [esp + 0x144], 0xf8
mov dword [esp + 0x145], 0
mov eax, 0x7f
mov ecx, 0x80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xc1]
mov ebx, eax
and ebx, esi
lea edx, [esi + esi]
not edx
add edx, esi
and edx, ecx
or edx, ebx
mov bl, 0x84
sub bl, dl
mov byte [esp + eax + 0xc1], bl
inc eax
dec ecx
cmp eax, 0x88
jne 0x420640
movzx eax, byte [esp + 0x140]
test al, al
je 0x4206a6
lea ecx, [esp + 0x141]
mov esi, edi
lea edx, [esp + 0x38]
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 0x420690
jmp 0x4206ac
xor ebx, ebx
mov esi, edi
jmp 0x4212f6
mov esi, edi
lea edx, [esp + 0x38]
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edx
call fcn.00441010
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x4212f4
mov dword [esp + 0x140], 0xc7606072
mov byte [esp + 0x144], 0xd8
mov dword [esp + 0x145], 0
mov eax, 0x2f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x111]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x15
mov byte [esp + eax + 0x111], cl
inc eax
cmp eax, 0x38
jne 0x420710
movzx eax, byte [esp + 0x140]
test al, al
je 0x42075b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420750
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.004405a0
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x4212f4
mov dword [esp + 8], esi
mov dword [esp + 0x140], 0x76667a3
mov byte [esp + 0x144], 0xf8
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 0x51a9057f
mov ecx, 0x80
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x51a9043f]
mov esi, eax
or esi, edx
mov edi, edx
sub edi, esi
add edi, eax
not edx
and edx, ecx
or edx, edi
mov bl, 0x84
sub bl, dl
mov byte [esp + eax - 0x51a9043f], bl
inc eax
dec ecx
cmp ecx, 0x78
jne 0x4207c0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42081d
lea ecx, [esp + 0x141]
mov esi, dword [esp + 8]
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 0x420810
jmp 0x420821
mov esi, dword [esp + 8]
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x4212f4
mov dword [esp + 0x34], 0
lea ebx, [esp + 0x38]
jmp 0x420889
mov dword [esp + 4], 0
push dword [esp + 0x30]
call fcn.00404e10
add esp, 4
mov eax, dword [esp + 0x34]
and al, 1
or al, byte [esp + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x42136d
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040cf60
add esp, 0xc
xor eax, eax
jmp 0x4208d2
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0xb
je 0x420ae0
mov dword [esp + 0x30], eax
mov ecx, ebx
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x18]
call fcn.00440420
test eax, eax
js 0x4208c4
cmp byte [esp + 0x210], 0
sete al
xor al, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x60], al
sete cl
xor cl, 0x31
mov byte [esp + 0x61], cl
cmp byte [esp + 0x212], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x62], cl
cmp byte [esp + 0x2d0], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x63], cl
mov word [esp + 0x64], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x61]
inc ecx
test al, al
jne 0x420950
mov byte [esi + ecx], 0
movzx eax, byte [esp + 0x212]
test al, al
jne 0x420b00
mov edx, dword [esp + 0x184]
or edx, dword [esp + 0x180]
je 0x420b00
add esi, ecx
mov dword [esp + 0x78], 0x5be5ecf5
mov byte [esp + 0x7c], 0x50
mov dword [esp + 0x7d], 0
mov eax, 0x167aced
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x167ac75]
mov edx, eax
and edx, ecx
or ecx, eax
xor ecx, edx
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x5e
mov byte [esp + eax - 0x167ac75], cl
inc eax
cmp eax, 0x167acf6
jne 0x4209b0
movzx eax, byte [esp + 0x78]
test al, al
je 0x4209fb
lea ecx, [esp + 0x79]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4209f0
mov dword [esp + 8], esi
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0x20272625
mov byte [esp + 0x7c], 0
mov esi, 0xaee1bf39
mov ecx, 0x4479031b
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi + 0x511e413f]
mov eax, esi
and eax, ebx
add eax, eax
mov edi, ebx
sub edi, eax
lea edx, [esi + edi]
add edi, ecx
xor edi, 1
add edi, ebx
sub edi, eax
add ebx, ecx
sub ebx, eax
and ebx, 0xfe
mov eax, ecx
sub eax, ebx
and edx, 1
add eax, edi
add edi, ecx
and edi, edx
xor eax, edx
lea eax, [eax + edi*2]
mov byte [esp + esi + 0x511e413f], al
inc esi
inc ecx
cmp esi, 0xaee1bf3e
jne 0x420a30
mov eax, dword [0x451b2c]
test eax, eax
lea ebx, [esp + 0x38]
je 0x4208c0
mov ecx, dword [esp + 0x78]
xor edx, edx
mov esi, dword [0x451b30]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xf8fd61b8
je 0x420ab3
inc edx
cmp eax, edx
jne 0x420aa0
jmp 0x4208c0
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x4208c0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x451b34]
push eax
call fcn.00442050
add esp, 0x14
jmp 0x4208c0
movzx eax, byte [esp + 0x212]
test al, al
jne 0x420b0a
jmp 0x420872
add esi, ecx
test al, al
je 0x420872
mov edi, esi
call fcn.00404fd0
mov dword [esp + 0x30], eax
push eax
call fcn.00404990
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x78], 0x993f3339
mov byte [esp + 0x7c], 0x9c
lea eax, [esp + 0x7d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x5b
mov ecx, 0xa4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x2c]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
add dl, 0xcc
mov byte [esp + ecx - 0x2c], dl
dec eax
inc ecx
cmp eax, 0x53
jne 0x420b50
movzx eax, byte [esp + 0x78]
test al, al
je 0x420b90
lea ecx, [esp + 0x79]
mov esi, edi
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420b80
jmp 0x420b92
mov esi, edi
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x420be0
mov ecx, ebx
push 0
push 0
push 0x40
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.00440420
test eax, eax
js 0x420bec
mov ecx, ebx
mov edx, edi
push dword [esp + 0xc]
call fcn.00422e50
add esp, 4
mov dword [esp + 4], eax
jmp 0x420bf4
mov eax, esi
mov dword [esp + 4], 0
jmp 0x420bf6
mov dword [esp + 4], 0
mov eax, esi
mov dword [esp + 0x78], 0x1984fcf9
mov byte [esp + 0x7c], 0x1c
lea ecx, [esp + 0x7d]
mov dword [ecx + 3], 0
mov dword [ecx], 0
mov ecx, 0xdec05444
mov edi, 0x213fabbb
nop
nop
movzx esi, byte [esp + ecx + 0x213fac34]
mov edx, edi
and edx, 0x2008a105
xor esi, 0xfceaa507
mov ebx, ecx
and ebx, 0x8a80545a
or ebx, edx
xor ebx, 0x88a20402
mov edx, esi
and edx, ebx
add ebx, esi
add edx, edx
sub ebx, edx
add bl, 0xac
mov byte [esp + ecx + 0x213fac34], bl
inc ecx
dec edi
cmp ecx, 0xdec05450
jne 0x420c20
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x420c90
lea edx, [esp + 0x79]
mov esi, eax
lea ebx, [esp + 0x38]
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 0x420c80
jmp 0x420c96
mov esi, eax
lea ebx, [esp + 0x38]
mov byte [esi], 0
cmp byte [esp + 4], 0
je 0x420850
push dword [esp + 0xc]
call fcn.00404dd0
add esp, 4
test eax, eax
je 0x420e52
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.00440420
test eax, eax
mov dword [esp + 8], esi
js 0x420f1e
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x11c]
push edi
push edx
push eax
call fcn.00440420
test eax, eax
js 0x420f1e
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
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.00440420
test eax, eax
js 0x420f1e
cmp byte [esp + 0x77], 0
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
js 0x420e5d
mov dword [esp + 0x10], 0xff909dd
mov dword [esp + 0x14], 0x3f40de9
mov dword [esp + 0x18], 0x7c20120
mov dword [esp + 0x1c], 0x1bee05e5
mov dword [esp + 0x20], 0x1ff219f9
mov word [esp + 0x24], 0x1d1c
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xa6ea542
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xa6ea532]
mov edx, eax
and edx, esi
mov edi, edx
or edi, 0xfffffffd
inc edi
mov ecx, edx
and ecx, 0x7d
imul ecx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add ecx, esi
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x35
xor ecx, 0xcbd6c5b5
lea edx, [ecx + edx*2]
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax - 0xa6ea532], cl
inc eax
cmp eax, 0xa6ea55d
jne 0x420db0
movzx edi, word [esp + 0x10]
test di, di
je 0x420eb8
lea eax, [esp + 0x10]
mov edx, dword [esp + 4]
mov ecx, edx
jmp 0x420e2c
movzx edi, word [eax]
test di, di
je 0x420ebe
movzx esi, word [ecx]
test si, si
je 0x420ef7
add eax, 2
add ecx, 2
lea ebx, [edx + 2]
cmp si, di
je 0x420e4a
mov edx, ebx
mov ecx, ebx
je 0x420e20
lea eax, [esp + 0x10]
jmp 0x420e20
mov al, 1
mov dword [esp + 4], eax
jmp 0x420858
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x420f1e
mov eax, dword [esp + 0x68]
mov ecx, eax
and ecx, 1
xor eax, 1
lea ecx, [eax + ecx*2]
lea esi, [ecx + ecx]
mov eax, esi
test ecx, ecx
jns 0x420e8c
mov eax, 0xffffffff
push eax
call fcn.0040cee0
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push esi
mov dword [esp + 0x10], eax
push eax
push edi
push ebx
call fcn.00440420
test eax, eax
mov esi, dword [esp + 8]
jns 0x420d65
jmp 0x420f1e
mov edx, dword [esp + 4]
jmp 0x420ec6
lea ebx, [esp + 0x78]
test edx, edx
je 0x420efb
movzx esi, word [edx + 0x14]
lea ebx, [esp + 0x78]
test si, si
je 0x420efb
lea eax, [edx + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
cmp si, 0x5c
je 0x42123a
movzx esi, word [edx + ecx + 0x16]
add ecx, 2
test si, si
jne 0x420ee0
lea ebx, [esp + 0x78]
cmp byte [esp + 0x77], 0
jns 0x420f0e
push dword [esp + 4]
call fcn.0040cef0
add esp, 4
lea edx, [esp + 0x78]
cmp edx, ebx
mov esi, dword [esp + 8]
jne 0x420fc6
mov dword [esp + 0x10], 0x39a83b8b
mov dword [esp + 0x14], 0x25b72795
mov dword [esp + 0x18], 0x21b0238d
mov dword [esp + 0x1c], 0x2db22fb7
mov dword [esp + 0x20], 0x292a2bbd
mov word [esp + 0x24], 0
mov eax, 0x7a5c4f4b
mov ecx, 0xb4
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7a5c4f3b]
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, 0x89
mov byte [esp + eax - 0x7a5c4f3b], dl
inc eax
dec ecx
cmp eax, 0x7a5c4f61
jne 0x420f60
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x78]
mov ebx, edx
test ax, ax
je 0x420fc1
lea ecx, [esp + 0x12]
mov ebx, edx
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 0x420fb0
mov word [ebx], 0
sub ebx, edx
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [esi + eax]
lea edx, [esp + eax]
add edx, 0x78
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov esi, edx
mov dword [esp + 4], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and eax, ecx
je 0x421033
mov edi, edx
mov ecx, ebx
and ecx, 2
mov esi, dword [esp + 4]
movzx edx, byte [edx + ecx]
mov byte [esi + ecx], dl
cmp eax, 1
je 0x421033
movzx edx, byte [edi + ecx + 1]
mov byte [esi + ecx + 1], dl
cmp eax, 2
je 0x421033
movzx eax, byte [edi + ecx + 2]
mov byte [esi + ecx + 2], al
mov dword [esp + 0x10], 0xb7c3c51a
mov word [esp + 0x14], 0x251e
mov dword [esp + 0x16], 0
mov eax, 0x3beedcf8
mov edi, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3beedce8]
xor ecx, eax
mov edx, ecx
and edx, 0x27
xor ecx, 0x27
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x3beedce8], cl
inc eax
cmp eax, 0x3beedd02
jne 0x421060
mov edx, dword [esp + 8]
add edx, ebx
movzx eax, byte [esp + 0x10]
test al, al
je 0x4210ab
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4210a0
mov byte [edx], 0
mov edi, dword [edi]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4210c0
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
mov dword [esp + 8], edx
jns 0x4210e4
mov eax, 0xffffffff
jmp 0x4210ed
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040cee0
add esp, 4
movzx ecx, word [edi]
mov esi, eax
test cx, cx
je 0x421121
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 0x421110
mov dword [esp + 0xc], eax
mov word [esi], 0x2f
mov dword [esp + 0x10], 0x29582b75
mov dword [esp + 0x14], 0x2db72f43
mov dword [esp + 0x18], 0x51c6537e
mov dword [esp + 0x1c], 0x55c257c8
mov word [esp + 0x20], 0x5b54
lea ecx, [esp + 0x26]
mov word [ecx], 0
mov dword [ecx - 4], 0
xor ecx, ecx
mov dl, 0xc8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dh, byte [esp + ecx + 0x10]
xor dh, dl
mov bl, 0xec
sub bl, dh
mov byte [esp + ecx + 0x10], bl
inc ecx
dec dl
cmp ecx, 0x18
jne 0x421170
add esi, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x4211b1
lea edx, [esp + 0x7a]
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 0x4211a0
mov word [esi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4211e3
mov ebx, dword [esp + 8]
lea edx, [esp + 0x12]
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 0x4211d0
jmp 0x4211e7
mov ebx, dword [esp + 8]
mov word [esi], 0
mov esi, 0xffffffff
push dword [esp + 0x30]
call fcn.00405be0
add esp, 4
mov edi, eax
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x421200
mov ecx, dword [ebp + 8]
push esi
push edi
mov esi, dword [esp + 0x14]
push esi
call fcn.0040da50
mov dword [esp + 4], eax
push edi
call fcn.00405c70
add esp, 4
push esi
call fcn.0040cef0
add esp, 4
mov esi, ebx
lea ebx, [esp + 0x38]
jmp 0x420858
lea edx, [esp + 0x78]
mov ebx, edx
test ecx, ecx
je 0x4212df
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x421283
xor edi, edi
mov ebx, edx
mov dword [esp + 0xc], esi
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 + 0xc]
add ebx, 2
inc edi
cmp esi, edi
jne 0x421260
mov esi, ecx
sub esi, edi
jmp 0x421287
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x4212df
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 0x42128d
mov word [ebx], 0
cmp byte [esp + 0x77], 0
jns 0x420f0e
jmp 0x420f02
xor ebx, ebx
lea ecx, [esp + 0x38]
call fcn.0043fbb0
mov dword [esp + 0x140], 0x31aaa19d
mov byte [esp + 0x144], 0x3c
mov dword [esp + 0x145], 0
xor ecx, ecx
nop
mov eax, ecx
add al, 0x4a
xor al, byte [esp + ecx + 0x140]
add al, 0x8e
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 9
jne 0x421320
movzx eax, byte [esp + 0x140]
test al, al
je 0x42135b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421350
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]
mov ebx, dword [esp + 0x34]
and bl, 1
test eax, eax
je 0x4212f6
cmp eax, dword [esp + 0x50]
je 0x4212f6
push eax
call fcn.0040cef0
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x4212f6