Function at 0x420880
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x490
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x80], 0x8b368d33
mov dword [esp + 0x84], 0x97378925
mov dword [esp + 0x88], 0x93609521
mov dword [esp + 0x8c], 0x9f26913d
mov dword [esp + 0x90], 0x9b9a9d31
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x42096b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + eax + 0x80]
lea eax, [ecx + edx]
add eax, 0xcb28b3ea
add ecx, 0xcb28b3ea
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, eax
xor ecx, 0x99
and eax, 0x19
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x80], al
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x20
jb case.default.0x420981
lea ebx, [esp + 0x80]
lea ecx, [esp + 0x60]
push ebx
call fcn.004359e0
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x443078]
lea ecx, [esp + 0x60]
push 0x410
call fcn.00435cc0
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443080]
mov eax, dword [case.0x420981.1]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, ecx
jmp dword [0x443118]
mov dword [esp + 0x80], 0x220b3421
mov dword [esp + 0x84], 0x2c220124
mov dword [esp + 0x88], 0x3821231d
mov dword [esp + 0x8c], 0x72e2619
mov dword [esp + 0x90], 0x24131206
mov dword [esp + 0x94], 0xf301611
mov dword [esp + 0x98], 0xa0d2e0a
mov dword [esp + 0x9c], 0x62f0833
mov dword [esp + 0xa0], 0x26343632
mov dword [esp + 0xa4], 0x1e3b5935
mov dword [esp + 0xa8], 0x73423d3d
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x3e
ja 0x420abe
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + eax + 0x80]
lea eax, [ecx - 0x6c9c8c36]
add ecx, 0xca
or ecx, eax
and ecx, edx
or eax, edx
sub eax, ecx
add al, 0x7a
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x3f
jb 0x420a80
lea eax, [esp + 0x74]
lea ecx, [esp + 0x60]
push 0
push 0x2b
push ebx
push eax
call fcn.00436220
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x443098]
mov eax, ecx
sub eax, edi
sar eax, 2
imul eax, eax, 0x421
push eax
mov esi, ecx
call fcn.00435870
add esp, 4
mov dword [esp + 0x54], 0
xor ecx, ecx
mov dword [esp + 0x58], esi
cmp edi, esi
setne cl
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], eax
jmp dword [ecx*4 + 0x4430a0]
mov edi, dword [esp + 0x14]
add edi, 4
xor eax, eax
cmp edi, dword [esp + 0x58]
setne al
jmp dword [eax*4 + 0x4430a0]
mov esi, dword [edi]
push 0x400
push 0
push ebx
call fcn.00408710
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x60]
push eax
push 0x400
push ebx
push esi
call fcn.004360b0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
mov dword [esp + 0x14], edi
jmp dword [ecx*4 + 0x4430a8]
xor eax, eax
cmp dword [esp + 0x20], 0
sete al
jmp dword [eax*4 + 0x4430b0]
mov eax, 1
jmp dword [eax*4 + 0x4430b8]
xor eax, eax
jmp dword [eax*4 + 0x4430b8]
mov byte [esp + 0x47f], 0
movzx ecx, byte [esp + 0x80]
xor eax, eax
test cl, cl
je 0x420be2
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x420be0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420bd0
jmp 0x420be2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4430c0]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
je 0x420c12
mov edx, esi
nop
cmp cl, 0x2e
je 0x420c10
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420c00
jmp 0x420c12
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x4430c8]
mov ecx, edi
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x420c38
cmp eax, 0x2e
jne 0x420c39
dec edx
cmp byte [ecx + esi - 2], 0x3d
mov dword [esp + 0x4c], ecx
je 0x420c56
mov eax, ecx
xor eax, 0xfffffffd
and ecx, 0xfffffffd
lea eax, [eax + ecx*2]
cmp byte [esi + eax + 1], 0x2e
jne 0x420c57
dec edx
mov dword [esp + 0x70], edx
lea eax, [edx + 1]
push eax
call fcn.00435870
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], esi
cmp edi, esi
je 0x420d71
xor esi, esi
mov edi, 2
jmp 0x420ca2
mov edx, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, edx
cmp edi, ecx
mov edi, eax
jae 0x420d71
mov ebx, dword [esp + 0x50]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.0040f440
add esp, 4
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.0040f440
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x1c]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x18]
mov byte [ecx + esi], al
lea edx, [esi + 1]
mov ecx, dword [esp + 0x4c]
cmp edi, ecx
jae 0x420c90
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.0040f440
mov edx, esi
mov ecx, dword [esp + 0x50]
add esp, 4
cmp al, 0x40
je 0x420c90
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x1c]
lea edx, [esi + 2]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x18]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x420c80
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040f440
mov ecx, dword [esp + 0x50]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x5c]
je 0x420c90
shl bl, 6
add al, bl
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x420c90
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
mov byte [esi + eax], 0
push esi
call fcn.00401780
add esp, 4
mov ebx, eax
jmp dword [0x4430d0]
push esi
call fcn.00408580
add esp, 4
push ebx
call fcn.00402170
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4430d8]
mov edi, dword [esp + 0x14]
jmp 0x420ebc
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x5bb8c4cb
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x17
ja 0x420e40
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx esi, byte [esp + edx + 0x20]
lea edx, [ecx - 0x7a282374]
mov edi, edx
xor edi, esi
and edx, esi
add ecx, 0x8c
and ecx, esi
add ecx, edx
sub edi, ecx
lea ecx, [edi + edx*2]
add cl, 0x2c
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x18
jb 0x420e00
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.004020f0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4430e0]
mov edx, dword [esp + 0x10]
jmp 0x420e89
movzx ecx, byte [eax]
test cl, cl
je 0x420e7d
inc eax
mov edx, dword [esp + 0x10]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x420e70
jmp 0x420e81
mov edx, dword [esp + 0x10]
mov word [edx], 0x203a
add edx, 2
mov edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x80]
test al, al
je 0x420eab
lea ecx, [esp + 0x81]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ea0
mov byte [edx], 0
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x10], edx
mov al, 1
mov dword [esp + 0x54], eax
push ebx
call fcn.004023b0
add esp, 4
add edi, 4
xor eax, eax
cmp edi, dword [esp + 0x58]
setne al
lea ebx, [esp + 0x80]
jmp dword [eax*4 + 0x4430a0]
mov ecx, dword [ebp + 8]
mov eax, dword [case.0x420e55.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x54]
mov edx, eax
and dl, 1
movzx edx, dl
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x10]
jmp dword [edx*4 + 0x443108]
jmp dword [0x443110]
xor eax, eax
jmp 0x420ffa
mov byte [ebx], 0
sub ebx, edi
mov dword [esp + 0x80], 0xd7c4c591
mov dword [esp + 0x84], 0xdbafacd5
mov dword [esp + 0x88], 0xd6dedcd1
mov dword [esp + 0x8c], 0xdcd4b493
mov dword [esp + 0x90], 0x8f95d6a1
mov dword [esp + 0x94], 0xede3e4eb
mov dword [esp + 0x98], 0xfbe8afeb
mov dword [esp + 0x9c], 0x71e6
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x420fce
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx esi, byte [esp + eax + 0x80]
lea eax, [edx + esi]
add eax, 0xb390cb0d
add edx, 0xb390cb0d
and edx, esi
add edx, edx
sub eax, edx
add al, 0xa5
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x80], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x20
jb 0x420f90
lea eax, [esp + 0x80]
push ebx
push edi
push eax
call fcn.00408ee0
jmp dword [0x443110]
push edi
mov esi, eax
call fcn.00408580
mov eax, esi
add esp, 4
and al, 1
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, eax
test edi, edi
je 0x42100d
cmp edi, ecx
je 0x42100d
push edi
call fcn.00408580
add esp, 4
jmp dword [0x443118]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x60]
call fcn.00435df0
lea ecx, [esp + 0x60]
call fcn.00435df0
jmp dword [0x443120]
int3
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4431a0]
jmp dword [ecx*4 + 0x443138]
mov dword [esp + 0x40], 0x6bc46dc8
mov dword [esp + 0x44], 0x67dd69d5
mov dword [esp + 0x48], 0x63cd65dd
mov dword [esp + 0x4c], 0x5ff061cc
mov dword [esp + 0x50], 0x5bfe5df5
mov dword [esp + 0x54], 0x571759ed
mov dword [esp + 0x58], 0x53ea55eb
mov dword [esp + 0x5c], 0x4ffc51e9
mov dword [esp + 0x60], 0x4bee4df1
mov dword [esp + 0x64], 0x47f549e7
mov dword [esp + 0x68], 0x43ee45fe
mov dword [esp + 0x6c], 0xbfff41eb
mov dword [esp + 0x70], 0xbb07bd12
mov dword [esp + 0x74], 0xb71cb91c
mov dword [esp + 0x78], 0xb326b515
mov dword [esp + 0x7c], 0xaf33b13a
mov dword [esp + 0x80], 0xab05ad08
mov dword [esp + 0x84], 0xa73ba924
mov dword [esp + 0x88], 0xa337a505
mov word [esp + 0x8c], 0xa1a0
lea ecx, [esp + 0x8e]
mov dword [ecx + 0xb], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x5c
ja 0x4211c9
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx esi, byte [esp + ecx + 0x40]
lea ecx, [edx + esi]
add ecx, 0xffd2
add edx, 0xffd2
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0x42
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x5d
jb 0x421180
push 0
push 0
push eax
lea eax, [esp + 0x110]
push eax
push edi
call fcn.0043ac00
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443140]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x124]
call fcn.0043b020
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443148]
mov ecx, dword [esp + 0x38]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42122c
mov eax, 0xffffffff
push eax
call fcn.00435870
add esp, 4
mov ebx, eax
mov dword [esp + 0x40], 0x4bc655a9
mov dword [esp + 0x44], 0x4fdc49df
mov dword [esp + 0x48], 0x43d04da9
mov dword [esp + 0x4c], 0x47b041de
mov dword [esp + 0x50], 0x7bd045a1
mov dword [esp + 0x54], 0x7f7879e2
lea eax, [esp + 0x8e]
mov dword [eax - 0x32], 0
mov dword [eax - 0x2a], 0
mov dword [eax - 0x2e], 0
mov dword [eax - 0x36], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xac]
cmp eax, 0x27
ja 0x4212f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x69195ef3]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
sub eax, edx
add al, 0xb1
mov ecx, dword [esp + 0xac]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
cmp eax, 0x28
jb 0x4212b0
lea eax, [esp + 0x38]
push eax
push ebx
push 0
push edi
push dword [esp + 0x114]
call fcn.0043b6f0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443150]
jmp dword [0x443158]
push ebx
call fcn.00408580
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp dword [0x44316c]
mov eax, dword [esp + 0x104]
mov dword [esp + 0x57], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x9c9d9e9f
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x1a
ja 0x4213c6
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
add cl, 0x44
xor cl, byte [esp + edx + 0x40]
add cl, 0x24
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x1b
jb 0x421390
mov ecx, dword [0x448c38]
test ecx, ecx
je case.default.0x421430
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x448c3c]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x5c3924fc
je 0x421404
inc esi
cmp ecx, esi
jne 0x4213e0
jmp case.default.0x421430
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443190]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.default.0x421430
push eax
push 1
push dword [0x448c40]
push ecx
call fcn.00437930
add esp, 0x10
nop
nop
xor eax, eax
test ebx, ebx
setne al
mov esi, 2
lea edi, [esp + 0x40]
jmp dword [eax*4 + 0x443170]
push edi
call fcn.0043a180
add esp, 4
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x443178]
xor edx, edx
cmp dword [esp + 0x40], 1
sete dl
jmp dword [edx*4 + 0x443180]
mov esi, ecx
jmp dword [eax*4 + 0x443188]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443190]
xor eax, eax
jmp dword [eax*4 + 0x443188]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443190]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x443198]
mov eax, dword [case.0x421430.17]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4431b8]
mov dword [esp + 8], eax
mov dword [esp + 0x40], 0x33893592
mov dword [esp + 0x44], 0xf823183
mov dword [esp + 0x48], 0xbbb0db4
mov dword [esp + 0x4c], 0x7ac09b3
mov dword [esp + 0x50], 0x3b505bb
mov dword [esp + 0x54], 0x1fba01b0
mov dword [esp + 0x58], 0x1ba51da9
mov dword [esp + 0x5c], 0x179219e8
mov dword [esp + 0x60], 0x13ae15aa
lea eax, [esp + 0x64]
mov word [esp + 0x64], 0x1112
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov word [esp + 0x72], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x33
ja 0x4215b1
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx - 0x264e7ea7]
lea edi, [ecx + 0x59]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0xd9b18159
sub ecx, edi
add esi, esi
sub ecx, esi
add cl, 0x91
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x34
jb 0x421560
lea edx, [esp + 0x40]
lea edi, [esp + 0x104]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x128]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4215e0
cmp eax, 0xffffffd9
jge 0x4215fe
mov eax, 0xffffffff
jmp 0x421601
xor eax, eax
jmp 0x4225a6
add eax, 0x26
lea edi, [esp + 0x40]
push eax
call fcn.00435870
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x421631
lea edx, [ebx + 2]
mov eax, esi
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421620
mov word [eax], 0
movzx ecx, word [esp + 0x104]
test cx, cx
je 0x421661
lea edx, [esp + 0x106]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421650
mov word [eax], 0
mov eax, dword [esp + 8]
jmp dword [eax*4 + 0x4431c0]
push ebx
call fcn.00408580
add esp, 4
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0043a3c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4431c8]
mov dword [esp + 0x1c], 0
mov eax, dword [case.0x42184a.11]
xor ebx, ebx
jmp case.0x42184a.8
push 0
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x14]
call fcn.0043a740
add esp, 0xc
mov ecx, dword [case.0x421430.27]
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x421430.31]
mov dword [esp + 0x14], esi
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x1c], 0
jmp dword [eax*4 + 0x4431f0]
mov esi, dword [esp + 0x38]
lea eax, [esi + 1]
push eax
call fcn.00435870
add esp, 4
push 0
push esi
mov dword [esp + 0x2c], eax
push eax
push dword [esp + 0x18]
call fcn.0043a850
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x1c], 0
jmp dword [eax*4 + 0x4431f8]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
mov byte [ebx + esi], 0
push 0x20
call fcn.00435870
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x18], eax
mov ecx, eax
push esi
push ebx
call fcn.00423e30
movzx eax, al
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x443200]
mov dword [esp + 0x40], 0xc7b4ceab
mov dword [esp + 0x44], 0xaad4a4db
mov dword [esp + 0x48], 0xd7a3bf97
mov dword [esp + 0x4c], 0xbc99a0d2
mov dword [esp + 0x50], 0xdeaba4d4
mov dword [esp + 0x54], 0x9495b4a3
mov dword [esp + 0x58], 0xefe4ece7
mov dword [esp + 0x5c], 0x7def
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xac]
cmp eax, 0x1f
ja 0x421837
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xac]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0xc1b6410c
add ecx, 0xc1b6410c
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xac
mov ecx, dword [esp + 0xac]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
cmp eax, 0x20
jb 0x4217f0
mov ecx, dword [esp + 0x18]
push edi
call fcn.00424030
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x443208]
mov dword [esp + 0x1c], edx
jmp dword [0x443218]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004241a0
push esi
call fcn.00408580
add esp, 4
jmp dword [0x443220]
jmp dword [0x443220]
push dword [esp + 0x24]
call fcn.00408580
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [esp + 0x57], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x9c9d9e9f
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x1a
ja 0x421916
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
add cl, 0x44
xor cl, byte [esp + edx + 0x40]
add cl, 0x24
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x1b
jb 0x4218e0
mov ecx, dword [0x448c38]
test ecx, ecx
je 0x42195a
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x448c3c]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x5c3924fc
je 0x421940
inc esi
cmp ecx, esi
jne 0x421930
jmp 0x42195a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x42195a
push eax
push 1
push dword [0x448c40]
push ecx
call fcn.00437930
add esp, 0x10
mov eax, dword [case.0x42184a.11]
lea edi, [esp + 0x40]
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x443238]
push esi
call fcn.00408580
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
sete al
jmp dword [eax*4 + 0x443240]
xor eax, eax
jmp 0x422566
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
sete al
jmp dword [eax*4 + 0x443240]
mov dword [esp + 0x20], ebx
mov eax, ebx
sub eax, ecx
sar eax, 3
mov ecx, eax
and ecx, 0x421
mov edx, eax
or eax, 0x421
imul eax, ecx
xor ecx, 0x421
and edx, 0xfffffbde
imul edx, ecx
add eax, edx
push eax
call fcn.00435870
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], 0xfb84f9e1
mov dword [esp + 0x44], 0xff99fd6b
mov dword [esp + 0x48], 0xf36cf19d
mov dword [esp + 0x4c], 0xf764f5b1
mov dword [esp + 0x50], 0xebace966
mov dword [esp + 0x54], 0xef78ed89
mov dword [esp + 0x58], 0xe3c7e18d
mov dword [esp + 0x5c], 0xe791e58e
mov dword [esp + 0x60], 0x1b7f1972
mov dword [esp + 0x64], 0x1f831d79
mov dword [esp + 0x68], 0x138c1172
mov dword [esp + 0x6c], 0x17711583
mov dword [esp + 0x70], 0xb940975
mov dword [esp + 0x74], 0xf9a0d54
mov dword [esp + 0x78], 0x366016a
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], 0x502
mov byte [esp + 0x80], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x40
ja 0x421ad9
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx esi, byte [esp + ecx + 0x40]
lea ecx, [edx + esi]
add ecx, 0xb0cd055f
add edx, 0xb0cd055f
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0x67
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x41
jb 0x421a90
lea ebx, [esp + 0xac]
mov edx, edi
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xe8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x100]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x447c2c]
mov ebx, dword [esp + 0x100]
test ebx, ebx
jns 0x421b29
mov eax, 0xffffffff
jmp 0x421b2c
lea eax, [ebx + ebx]
push eax
call fcn.00435870
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xbc]
push eax
push 0
call dword [0x447c2c]
lea eax, [esp + 0xa8]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x10c], edi
push edi
call fcn.0043a3c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443248]
xor edx, edx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x20]
jmp dword [0x443330]
mov eax, edx
and al, 1
movzx ecx, al
lea esi, [esp + 0x40]
mov eax, edx
jmp dword [ecx*4 + 0x443338]
jmp dword [0x443340]
lea eax, [esp + 0xf4]
push 0
push eax
push dword [esp + 0xb0]
call fcn.0043a740
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x24]
mov esi, edi
jmp dword [eax*4 + 0x443250]
mov esi, dword [esp + 0xf4]
lea eax, [esi + 1]
push eax
call fcn.00435870
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0xb4]
call fcn.0043a850
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
mov esi, edi
jmp dword [eax*4 + 0x443258]
mov esi, dword [esp + 0xf4]
mov byte [ebx + esi], 0
push 0x20
call fcn.00435870
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0xec], eax
mov ecx, eax
push esi
mov dword [esp + 0xfc], ebx
push ebx
call fcn.00423e30
movzx eax, al
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], edi
jmp dword [eax*4 + 0x443260]
mov dword [esp + 0x40], 0x57444e6b
mov dword [esp + 0x44], 0x4a44745b
mov dword [esp + 0x48], 0x47737f07
mov dword [esp + 0x4c], 0x7c195042
mov dword [esp + 0x50], 0x5e6b5444
mov dword [esp + 0x54], 0x51510613
mov dword [esp + 0x58], 0x4f615c56
mov dword [esp + 0x5c], 0x271d1c7f
mov word [esp + 0x60], 0xb925
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov dword [esp + 0x75], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x38
ja 0x421d48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0x526d91a4
add ecx, 0x526d91a4
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x84
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x39
jb 0x421d10
mov ecx, dword [esp + 0xec]
lea eax, [esp + 0x40]
push eax
call fcn.00424030
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
jmp dword [ecx*4 + 0x443268]
add eax, 8
mov dword [esp + 0x18], 0
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
jmp dword [eax*4 + 0x443270]
jmp dword [0x44330c]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0xf8]
jmp dword [0x443310]
mov edi, dword [esp + 0xec]
mov ecx, edi
call fcn.004241a0
push edi
call fcn.00408580
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [case.0x421d70.47]
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x18], ecx
jmp dword [0x443328]
push ebx
call fcn.00408580
add esp, 4
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x57], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x9c9d9e9f
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1a
ja 0x421e77
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
add cl, 0x44
xor cl, byte [esp + edx + 0x40]
add cl, 0x24
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1b
jb 0x421e50
mov ecx, dword [0x448c38]
test ecx, ecx
mov ebx, dword [esp + 0x20]
je 0x422447
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x448c3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x5c3924fc
je 0x42242d
inc esi
cmp ecx, esi
jne 0x421ea0
jmp 0x422447
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443270]
mov edi, dword [esi]
xor ebx, ebx
cmp dword [esi + 0x18], 3
jne case.default.0x421ee7
mov ebx, dword [esi + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443278]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x443280]
mov dword [esp + 0xf0], esi
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x421f40
sub ecx, ebx
shr ecx, 1
mov dword [esp + 0xa4], ecx
lea eax, [ecx + 1]
xor esi, esi
push eax
call fcn.00435870
add esp, 4
mov dword [esp + 0x28], eax
movsx eax, byte [ebx + esi*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443288]
mov ecx, edx
and ecx, 0xa
xor edx, 0xa
lea ecx, [edx + ecx*2]
or ecx, eax
mov eax, dword [esp + 0x28]
mov byte [eax + esi], cl
inc esi
movsx eax, byte [ebx + esi*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443288]
mov ecx, eax
or ecx, 0x20
add ecx, 0xffffff9f
cmp ecx, 5
ja 0x421fa0
mov eax, ecx
and eax, 0xa
xor ecx, 0xa
lea eax, [ecx + eax*2]
jmp 0x421fad
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x421fad
mov eax, 0xffffffff
shl eax, 4
movsx ecx, byte [ebx + esi*2 + 1]
mov edx, ecx
or edx, 0x20
add edx, 0xffffff9f
cmp edx, 5
jbe 0x421f50
add ecx, 0xffffffd0
cmp ecx, 0xa
jb case.default.0x421fe4
mov ecx, 0xffffffff
or ecx, eax
mov eax, dword [esp + 0x28]
mov byte [eax + esi], cl
inc esi
movsx eax, byte [ebx + esi*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443288]
mov eax, dword [esp + 0x28]
jmp dword [0x443294]
mov byte [eax + esi], 0
jmp dword [0x443298]
mov byte [eax + esi], 0
mov byte [eax + esi], 0
jmp dword [0x443298]
jmp 0x422011
inc edi
movzx eax, byte [edi]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422010
cmp ecx, 0x20
je 0x422010
movzx ecx, al
cmp ecx, 0x2d
je 0x422033
mov dl, 1
cmp ecx, 0x2b
jne 0x42203f
cmp al, 0x2b
movzx eax, byte [edi + 1]
lea edi, [edi + 1]
sete dl
cmp al, 0x30
mov byte [esp + 0x37], dl
jne 0x422057
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
xor esi, esi
xor edx, edx
xor eax, eax
jmp 0x422094
mov dword [esp + 0x2c], 0
xor ebx, ebx
mov ecx, 0xffffffff
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0xa0], 0x22
mov edx, dword [esp + 0x2c]
add edx, ecx
adc ebx, dword [esp + 8]
mov esi, dword [esp + 0xa0]
mov eax, ebx
mov ecx, eax
mov dword [esp + 0xa0], esi
movsx eax, byte [edi]
lea esi, [eax - 0x30]
cmp esi, 0xa
jb 0x4220d5
mov dword [esp + 8], ecx
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
mov esi, dword [esp + 0x20]
ja 0x42215c
or al, 0x20
cmp al, 0x66
jg 0x42215c
movsx esi, al
add esi, 0xffffffa9
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
inc edi
mov ebx, edx
and ebx, ecx
mov edx, 0xffffffff
mov esi, 0x22
mov eax, 0xffffffff
cmp ebx, 0xffffffff
je 0x422094
mov eax, dword [esp + 0x30]
test ecx, 0xf0000000
je 0x422120
mov eax, 0xffffffff
cmp dword [esp + 0x2c], 0
jne 0x422094
jmp 0x42205f
mov edx, eax
shld ecx, eax, 4
shl edx, 4
mov eax, dword [esp + 0x2c]
mov ebx, eax
sar ebx, 0x1f
mov esi, ecx
mov ecx, eax
add ecx, edx
mov ecx, ebx
mov dword [esp + 8], esi
adc ecx, esi
mov ecx, edx
mov edx, 0xffffffff
mov eax, 0xffffffff
mov esi, 0x22
jb 0x422094
jmp 0x422081
xor edi, edi
mov eax, edx
neg eax
mov ecx, 0
sbb ecx, dword [esp + 8]
cmp byte [esp + 0x37], 0
jne case.default.0x422187
mov edx, eax
mov dword [esp + 8], ecx
mov dword [esp + 0x30], edx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp eax, esi
setne cl
jmp dword [ecx*4 + 0x4432a0]
mov edi, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 0x20]
jmp dword [ecx*4 + 0x4432b0]
add eax, 8
xor ecx, ecx
cmp eax, esi
setne cl
jmp dword [ecx*4 + 0x4432a0]
cmp dword [esp + 0xa0], 0x22
setne cl
mov edx, dword [eax + 4]
mov esi, edx
shr esi, 0x1c
xor esi, dword [esp + 8]
shl edx, 4
or edx, 1
xor edx, dword [esp + 0x30]
or edx, esi
sete dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x4432a8]
mov ecx, 1
mov esi, dword [esp + 0x20]
jmp dword [ecx*4 + 0x4432b0]
mov eax, dword [case.0x421d70.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
mov esi, dword [esp + 0xf0]
mov ebx, dword [esp + 0x28]
jmp dword [eax*4 + 0x4432c8]
jmp dword [0x4432e8]
jmp dword [0x4432d4]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne 0x422240
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
push 0x1d768438
push dword [0x448c44]
call fcn.004398a0
add esp, 8
lea ecx, [esp + 0x38]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
nop
nop
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne 0x4222b0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
push 0x1d768438
push dword [0x448c44]
call fcn.004398a0
add esp, 8
lea ecx, [esp + 0x38]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
jmp dword [0x4432d8]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4432e0]
jmp dword [0x4432e8]
movzx eax, byte [edi]
test al, al
je 0x42233d
inc edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x422330
jmp 0x422341
mov ebx, dword [esp + 0x14]
mov byte [ebx], 0
mov byte [ebx], 0x3a
mov byte [ebx + 1], 0x20
add ebx, 2
mov edx, dword [esp + 0x38]
test edx, edx
je 0x422382
mov eax, dword [esp + 0x3c]
mov ecx, edx
and ecx, 3
je 0x422386
xor esi, esi
mov edi, ebx
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
mov ebx, edi
inc esi
cmp ecx, esi
jne 0x422363
mov ecx, edx
sub ecx, esi
add ebx, esi
mov esi, ebx
jmp 0x422388
mov esi, ebx
jmp 0x4223c6
mov ecx, edx
cmp edx, 4
jb 0x4223c6
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [ebx], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [ebx + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [ebx + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [ebx + 4]
mov byte [ebx + 3], dl
mov ebx, esi
add ecx, 0xfffffffc
jne 0x42238d
mov byte [esi], 0xa
inc esi
mov eax, dword [esp + 0x18]
and al, 1
movzx eax, al
mov ecx, eax
xor ecx, 1
add ecx, eax
setne al
mov dword [esp + 0x18], eax
push 0x4835118f
push dword [0x448c30]
call fcn.004398a0
add esp, 8
push dword [esp + 0x3c]
call eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xf0]
mov ebx, dword [esp + 0x28]
jmp dword [0x4432e8]
jmp dword [0x4432f4]
push ebx
call fcn.00408580
add esp, 4
push ebx
call fcn.00408580
add esp, 4
jmp dword [0x4432f8]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x422447
push eax
push 1
push dword [0x448c40]
push ecx
call fcn.00437930
add esp, 0x10
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
jmp dword [0x443330]
push dword [esp + 0xfc]
mov esi, edx
call fcn.00408580
add esp, 4
mov edx, esi
mov eax, edx
and al, 1
movzx ecx, al
lea esi, [esp + 0x40]
mov eax, edx
jmp dword [ecx*4 + 0x443338]
mov eax, dword [esp + 0x14]
mov byte [eax], 0
sub eax, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], 0x17282975
mov dword [esp + 0x44], 0x2b1f1811
mov dword [esp + 0x48], 0x360e3015
mov dword [esp + 0x4c], 0x301073
mov dword [esp + 0x50], 0x1f790605
mov dword [esp + 0x54], 0x10b003b
mov dword [esp + 0x58], 0xb047f3b
mov word [esp + 0x5c], 0x9506
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x29
ja 0x422543
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x81d0fb47
add eax, 0x81d0fb47
and eax, ecx
add eax, eax
mov ecx, eax
not ecx
and ecx, edx
add ecx, ecx
xor eax, edx
sub ecx, eax
add cl, 0xf
mov eax, dword [esp + 0xc]
mov byte [esp + eax + 0x40], cl
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x2a
jb 0x422500
mov ecx, dword [ebp + 8]
push dword [esp + 0x14]
push edi
push esi
call fcn.00408ee0
jmp dword [0x443340]
push edi
mov esi, eax
call fcn.00408580
mov eax, esi
add esp, 4
and al, 1
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4225a6
cmp esi, ebx
je 0x4225a6
mov edi, eax
jmp 0x422584
cmp esi, ebx
je 0x422598
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x422580
push eax
call fcn.00408580
add esp, 4
jmp 0x422580
push dword [esp + 0x1c]
call fcn.00408580
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add eax, 8
xor ebx, ebx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edx, edx
xor esi, esi
mov dword [esp + 0x2c], 0
jmp dword [eax*4 + 0x443210]
not eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov dword [edx + esi*8 + 4], eax
add ebx, 8
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov esi, edx
jmp dword [eax*4 + 0x443210]
mov dword [esp + 0x28], ecx
mov edx, dword [ecx]
mov eax, ebx
sub eax, esi
mov edi, eax
sar edi, 3
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 8], edx
je 0x422620
mov dword [esp + 0x20], ebx
mov ebx, esi
jmp 0x4226a1
shr eax, 2
and eax, 2
mov ecx, edi
xor ecx, 1
add ecx, eax
mov eax, edi
shr edi, 1
add edi, eax
cmp edi, ecx
ja 0x422639
mov edi, ecx
lea eax, [edi*8]
push eax
call fcn.00408570
add esp, 4
mov ebx, eax
test esi, esi
je 0x42268d
mov edx, dword [esp + 0x2c]
cmp esi, edx
je 0x422684
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x422660
mov edx, esi
push edx
call fcn.00408580
add esp, 4
mov edx, dword [esp + 0x30]
lea eax, [ebx + edx*8]
mov dword [esp + 0x20], eax
lea ecx, [ebx + edi*8]
mov edi, edx
mov edx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov dword [ebx + edi*8], 0
mov dword [esp + 0x1c], ebx
mov dword [ebx + edi*8 + 4], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [edx + esi], 0
jne 0x4226c0
push ebx
call fcn.00435870
add esp, 4
mov ecx, dword [esp + 0x1c]
mov dword [ecx + edi*8], eax
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp + 8]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add edx, eax
mov ecx, ebx
xor ecx, 3
mov eax, ebx
or eax, 0xfffffffc
and eax, ecx
add eax, dword [esp + 8]
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edi, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edi, edx
mov edx, dword [esp + 0xa0]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x422740
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 0xa4]
mov byte [edx + ecx], al
cmp ebx, 1
je 0x422769
lea ecx, [ebx - 1]
cmp ebx, 2
jne 0x42277c
mov eax, 0xffffffff
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 8]
test cl, 1
je 0x4225d0
jmp 0x4227cc
xor eax, eax
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
jmp 0x4225d6
and esi, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [edi]
movzx eax, al
xor edx, dword [eax*4 + 0x43d6b0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + 1]
add edi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43d6b0]
add esi, 0xfffffffe
jne 0x422790
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
test cl, 1
je 0x4225d0
mov ecx, eax
shr ecx, 8
xor al, byte [edi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43d6b0]
mov eax, ecx
jmp 0x4225d0
sub ecx, edx
jmp ecx