Function at 0x420192
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x21f8
call fcn.00408a20
mov dword [esp + 0x11f0], 0xa3d2a1c2
mov dword [esp + 0x11f4], 0xdfa5dddd
mov dword [esp + 0x11f8], 0xdbb5d9a5
mov dword [esp + 0x11fc], 0xd7a6d5b6
mov dword [esp + 0x1200], 0xd3b4d1bd
mov dword [esp + 0x1204], 0xcfa1cdbd
mov dword [esp + 0x1208], 0xcbbac9b1
mov word [esp + 0x120c], 0xc5ca
mov dword [esp + 0x120e], 0
mov dword [esp + 0xa80], 0
mov eax, dword [esp + 0xa80]
cmp eax, 0x21
ja 0x41ec37
nop
nop
nop
nop
mov eax, dword [esp + 0xa80]
mov ecx, dword [esp + 0xa80]
movzx ecx, byte [esp + ecx + 0x11f0]
lea edx, [eax + 0x3b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe4e4043b
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
add al, 0x63
mov ecx, dword [esp + 0xa80]
mov byte [esp + ecx + 0x11f0], al
inc dword [esp + 0xa80]
mov eax, dword [esp + 0xa80]
cmp eax, 0x22
jb 0x41ebe0
lea eax, [esp + 0x44]
lea esi, [esp + 0x11f0]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043bc10
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x442c18]
lea eax, [esp + 0x68]
lea ecx, [esp + 0x50]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x64]
call fcn.0043c030
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442c20]
mov eax, dword [case.0x41ec58.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
jmp 0x4209da
lea ebx, [esp + 0x120]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x28], 0
cmp ecx, dword [esp + 0x50]
setb al
mov dword [esp + 0x38], 0
mov edx, esi
jmp dword [eax*4 + 0x442c38]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], 0xdcdddedf
mov dword [ebx - 0x95], 0
mov dword [ebx - 0x98], 0
mov dword [ebx - 0x9c], 0
mov dword [esp + 0x880], 0
mov ecx, dword [esp + 0x880]
cmp ecx, 0xe
ja 0x41eda1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x880]
mov edx, dword [esp + 0x880]
movzx esi, byte [esp + edx + 0x80]
mov edx, 0x7d59d41b
sub edx, ecx
add ecx, 0xe4
and ecx, esi
or edx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0xa80], edx
mov ecx, dword [esp + 0xa80]
add cl, 0xc4
mov edx, dword [esp + 0x880]
mov byte [esp + edx + 0x80], cl
mov ecx, dword [esp + 0x880]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x880], ecx
mov ecx, dword [esp + 0x880]
cmp ecx, 0xf
jb 0x41ed30
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x41edf0
mov edx, dword [esp + 0x80]
xor edi, edi
mov ebx, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x41edd0
inc edi
cmp ecx, edi
jne 0x41edc0
jmp 0x41edf0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41edf0
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
nop
nop
nop
nop
nop
nop
lea ebx, [esp + 0x120]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], 0xdcdddedf
mov dword [ebx - 0x95], 0
mov dword [ebx - 0x98], 0
mov dword [ebx - 0x9c], 0
mov dword [esp + 0x880], 0
mov ecx, dword [esp + 0x880]
cmp ecx, 0xe
ja 0x41eeb1
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x880]
mov edx, dword [esp + 0x880]
movzx esi, byte [esp + edx + 0x80]
mov edx, 0x7d59d41b
sub edx, ecx
add ecx, 0xe4
and ecx, esi
or edx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0xa80], edx
mov ecx, dword [esp + 0xa80]
add cl, 0xc4
mov edx, dword [esp + 0x880]
mov byte [esp + edx + 0x80], cl
mov ecx, dword [esp + 0x880]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x880], ecx
mov ecx, dword [esp + 0x880]
cmp ecx, 0xf
jb 0x41ee40
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x41eef0
mov edx, dword [esp + 0x80]
xor edi, edi
mov ebx, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x41eee0
inc edi
cmp ecx, edi
jne 0x41eed0
jmp 0x41eef0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41eefd
nop
nop
nop
nop
nop
nop
nop
nop
lea ebx, [esp + 0x120]
jmp dword [0x442d14]
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
lea ebx, [esp + 0x120]
jmp dword [0x442d14]
mov dword [esp + 8], edx
mov edi, dword [esp + 0x68]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x41ef41
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov dword [esp + 0x64], edi
mov esi, eax
lea eax, [esp + 0x64]
push eax
push esi
push dword [esp + 0x40]
push dword [esp + 0x50]
call fcn.0043bd60
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442c40]
jmp dword [0x442c50]
lea eax, [esp + 0x40]
push dword [esp + 0x44]
push 0
push 0x20019
push eax
push esi
call fcn.0043bc10
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442c58]
jmp dword [0x442d18]
mov dword [esp + 0x54], esi
mov dword [esp + 0x80], 0x33a33545
mov dword [esp + 0x84], 0x2fbe31af
mov dword [esp + 0x88], 0x2ba12dbf
mov dword [esp + 0x8c], 0x27b229bb
mov dword [esp + 0x90], 0x234025aa
mov dword [esp + 0x94], 0x5fb7214b
mov dword [esp + 0x98], 0x5bc05dcc
mov dword [esp + 0x9c], 0x57d159cb
mov dword [esp + 0xa0], 0x537455db
mov dword [esp + 0xa4], 0x4fcb5121
mov dword [esp + 0xa8], 0x4bc14dc3
mov dword [esp + 0xac], 0x47d149d5
mov dword [esp + 0xb0], 0x43d645d1
mov dword [esp + 0xb4], 0x7f6041db
mov dword [esp + 0xb8], 0x7bf77d13
mov dword [esp + 0xbc], 0x77f579e4
mov dword [esp + 0xc0], 0x73f975f1
mov dword [esp + 0xc4], 0x6feb71fe
mov dword [esp + 0xc8], 0x6b086dfd
mov dword [esp + 0xcc], 0x67e6691a
mov dword [esp + 0xd0], 0x63fe65f7
mov dword [esp + 0xd4], 0x9ff461f5
mov dword [esp + 0xd8], 0x9b119d05
mov dword [esp + 0xdc], 0x97df99fe
mov dword [esp + 0xe0], 0x93dd95db
mov dword [esp + 0xe4], 0x8fed91d9
mov dword [esp + 0xe8], 0x8bf68df4
mov dword [esp + 0xec], 0x87c489da
mov dword [esp + 0xf0], 0x83c985c9
mov dword [esp + 0xf4], 0xbfcf81cd
mov dword [esp + 0xf8], 0xbb20bdf1
mov dword [esp + 0xfc], 0xb7c6b9f7
mov dword [esp + 0x100], 0xb3fcb5fe
mov dword [esp + 0x104], 0xafe0b1cd
mov dword [esp + 0x108], 0xabe3adfe
mov dword [esp + 0x10c], 0xa7e4a9fa
mov dword [esp + 0x110], 0xa3eaa5d8
mov dword [esp + 0x114], 0xdfeaa1dd
mov dword [esp + 0x118], 0xdb95dd94
mov dword [esp + 0x11c], 0xd7bcd990
mov word [esp + 0x120], 0xd5d6
mov word [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xa7
ja 0x41f214
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax + 0x12987da9]
add eax, 0xa9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
mov ecx, eax
or ecx, 0x60
and eax, 0x60
add eax, ecx
inc al
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xa8
jb 0x41f1b0
lea edi, [esp + 0xf24]
lea eax, [esp + 0x80]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
lea edi, [esp + 0xfc4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0x2bc32dd9
mov dword [esp + 0x84], 0xd74829c7
mov dword [esp + 0x88], 0xd34dd547
mov dword [esp + 0x8c], 0xdf34d143
mov dword [esp + 0x90], 0xdb3edd40
mov dword [esp + 0x94], 0xc72fd923
mov dword [esp + 0x98], 0xc32ec556
mov dword [esp + 0x9c], 0xcf55c153
mov dword [esp + 0xa0], 0xcbeacd53
mov dword [esp + 0xa4], 0xf70ac93a
mov dword [esp + 0xa8], 0xf33df510
mov dword [esp + 0xac], 0xff60f16d
mov dword [esp + 0xb0], 0xfb17fd62
mov dword [esp + 0xb4], 0xe77af96a
mov dword [esp + 0xb8], 0xe30fe51e
mov dword [esp + 0xbc], 0xef71e17e
mov dword [esp + 0xc0], 0xeb79ed05
mov dword [esp + 0xc4], 0x9772e97a
mov dword [esp + 0xc8], 0x937b956f
mov dword [esp + 0xcc], 0x9f729102
mov dword [esp + 0xd0], 0x9b019d0f
mov dword [esp + 0xd4], 0x87a69907
mov dword [esp + 0xd8], 0x836f8571
mov dword [esp + 0xdc], 0x8f11811f
mov dword [esp + 0xe0], 0x8b618d6d
mov dword [esp + 0xe4], 0xb7248961
mov dword [esp + 0xe8], 0xb392b55f
mov dword [esp + 0xec], 0xbf23b14f
mov dword [esp + 0xf0], 0xbb25bd52
mov dword [esp + 0xf4], 0xa739b921
mov dword [esp + 0xf8], 0xa34fa538
mov dword [esp + 0xfc], 0xaf4aa135
mov dword [esp + 0x100], 0xab34ad5c
mov dword [esp + 0x104], 0x57bca93b
mov dword [esp + 0x108], 0x53c655bd
mov dword [esp + 0x10c], 0x5fc151bd
mov dword [esp + 0x110], 0x5ba95db8
mov dword [esp + 0x114], 0x47da59c5
mov dword [esp + 0x118], 0x43d145d0
mov dword [esp + 0x11c], 0x4fd941d3
mov dword [esp + 0x120], 0x4b934da8
mov dword [esp + 0x124], 0x77ad4997
mov dword [esp + 0x128], 0x73bd75a9
mov dword [esp + 0x12c], 0x7fb471ba
mov dword [esp + 0x130], 0x7ba67dac
mov dword [esp + 0x134], 0x67b979a9
mov dword [esp + 0x138], 0x63b365b5
mov dword [esp + 0x13c], 0x6f8261b1
mov dword [esp + 0x140], 0x6ba46db3
mov dword [esp + 0x144], 0x17ce69b0
mov dword [esp + 0x148], 0x13c215d5
mov dword [esp + 0x14c], 0x1fcf11c0
mov dword [esp + 0x150], 0x1bc61dcc
mov dword [esp + 0x154], 0x7d819d6
mov dword [esp + 0x158], 0x3d805c5
mov dword [esp + 0x15c], 0xfd501da
mov dword [esp + 0x160], 0xbee0dd6
mov word [esp + 0x164], 0x908
mov byte [ebx + 0x48], 0
mov word [ebx + 0x46], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xe8
ja 0x41f53c
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax + 0xfa]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb4176bfa
mov dword [esp + 0xa80], eax
mov eax, dword [esp + 0xa80]
add al, 0x2a
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xe9
jb 0x41f4e0
lea edi, [esp + 0xfc6]
lea eax, [esp + 0x80]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x164]
lea edi, [esp + 0x10aa]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0x2bc32dd9
mov dword [esp + 0x84], 0xd74829c7
mov dword [esp + 0x88], 0xd34dd547
mov dword [esp + 0x8c], 0xdf34d143
mov dword [esp + 0x90], 0xdb3edd40
mov dword [esp + 0x94], 0xc72cd92b
mov dword [esp + 0x98], 0xc32bc52e
mov dword [esp + 0x9c], 0xcf23c12f
mov dword [esp + 0xa0], 0xcb1bcd28
mov dword [esp + 0xa4], 0xf724c917
mov dword [esp + 0xa8], 0xf316f524
mov dword [esp + 0xac], 0xff63f103
mov dword [esp + 0xb0], 0xfb6efd60
mov dword [esp + 0xb4], 0xe775f96b
mov dword [esp + 0xb8], 0xe306e573
mov dword [esp + 0xbc], 0xef70e110
mov dword [esp + 0xc0], 0xeb00ed7f
mov dword [esp + 0xc4], 0x9702e901
mov dword [esp + 0xc8], 0x930d9579
mov dword [esp + 0xcc], 0x9f6d9174
mov dword [esp + 0xd0], 0x9b069d01
mov dword [esp + 0xd4], 0x8715990c
mov dword [esp + 0xd8], 0x83158517
mov dword [esp + 0xdc], 0x8f578164
mov dword [esp + 0xe0], 0x8b518d53
mov dword [esp + 0xe4], 0xb7798955
mov dword [esp + 0xe8], 0xb378b57e
mov dword [esp + 0xec], 0xbf62b160
mov dword [esp + 0xf0], 0xbb65bd6d
mov dword [esp + 0xf4], 0xa777b969
mov dword [esp + 0xf8], 0xa34ea575
mov dword [esp + 0xfc], 0xaf60a17f
mov dword [esp + 0x100], 0xab72ad74
mov dword [esp + 0x104], 0x5786a969
mov dword [esp + 0x108], 0x53835584
mov dword [esp + 0x10c], 0x5f825180
mov dword [esp + 0x110], 0x5b845d92
mov dword [esp + 0x114], 0x479c5999
mov dword [esp + 0x118], 0x4399459e
mov dword [esp + 0x11c], 0x4faa419a
mov word [esp + 0x120], 0x4d4c
mov word [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xa7
ja 0x41f7ca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax - 0x57c05786]
and edx, ecx
add eax, ecx
add eax, 0xa83fa87a
add edx, edx
sub eax, edx
mov dword [esp + 0xa80], eax
mov eax, dword [esp + 0xa80]
mov ecx, eax
xor ecx, 0xa9
and eax, 0x29
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xa8
jb 0x41f760
lea edi, [esp + 0xe82]
lea eax, [esp + 0x80]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0xf22]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0x937b9161
mov dword [esp + 0x84], 0x9f0e9d7f
mov dword [esp + 0x88], 0x9b05990f
mov dword [esp + 0x8c], 0x876a850b
mov dword [esp + 0x90], 0x8364811a
mov dword [esp + 0x94], 0x8f628d73
mov dword [esp + 0x98], 0x8b638960
mov dword [esp + 0x9c], 0xb75bb567
mov dword [esp + 0xa0], 0xb363b152
mov dword [esp + 0xa4], 0xbf6abd6e
mov dword [esp + 0xa8], 0xbb5cb96e
mov dword [esp + 0xac], 0xa73ba54b
mov dword [esp + 0xb0], 0xa334a13a
mov dword [esp + 0xb4], 0xaf3dad33
mov dword [esp + 0xb8], 0xab4ca93b
mov dword [esp + 0xbc], 0x57c6555a
mov dword [esp + 0xc0], 0x53be51c7
mov dword [esp + 0xc4], 0x5fc85db9
mov dword [esp + 0xc8], 0x5bc559b1
mov dword [esp + 0xcc], 0x47b545be
mov dword [esp + 0xd0], 0x43dc41d9
mov dword [esp + 0xd4], 0x4fdd4dd6
mov dword [esp + 0xd8], 0x4bdd49df
mov dword [esp + 0xdc], 0x77af75ae
mov dword [esp + 0xe0], 0x73a971ab
mov dword [esp + 0xe4], 0x7fb17dad
mov dword [esp + 0xe8], 0x7bb679b0
mov dword [esp + 0xec], 0x67b865aa
mov dword [esp + 0xf0], 0x63bd61b5
mov dword [esp + 0xf4], 0x6fbf6db1
mov dword [esp + 0xf8], 0x6b8469bd
mov dword [esp + 0xfc], 0x17d615b7
mov dword [esp + 0x100], 0x13c811ce
mov dword [esp + 0x104], 0x1fcc1dd1
mov dword [esp + 0x108], 0x1bcb19ce
mov dword [esp + 0x10c], 0x7d805ca
mov dword [esp + 0x110], 0x3d201c4
mov dword [esp + 0x114], 0xfd20dc1
mov dword [esp + 0x118], 0xbd109d0
mov dword [esp + 0x11c], 0x37d035d4
mov word [esp + 0x120], 0x3136
mov byte [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xaa
ja 0x41fa5d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax - 0x62f185bd]
and edx, ecx
lea esi, [eax + ecx]
add esi, 0x9d0e7a43
add eax, 0x43
and eax, ecx
add eax, edx
mov ecx, eax
xor ecx, esi
not eax
and eax, esi
add eax, eax
sub eax, ecx
mov dword [esp + 0xa80], eax
mov eax, dword [esp + 0xa80]
add al, 0x2b
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xab
jb 0x41f9f0
lea edx, [esp + 0x114e]
lea eax, [esp + 0x80]
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x120]
lea edi, [esp + 0x11ee]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0xa31bad71
mov dword [esp + 0x84], 0xa710a107
mov dword [esp + 0x88], 0xbb0da517
mov dword [esp + 0x8c], 0xbf04b90b
mov dword [esp + 0x90], 0xb31ebd08
mov dword [esp + 0x94], 0xb70cb163
mov dword [esp + 0x98], 0x8b33b50e
mov dword [esp + 0x9c], 0x8f2b892f
mov dword [esp + 0xa0], 0x83738d20
mov dword [esp + 0xa4], 0x87748175
mov dword [esp + 0xa8], 0x9b368574
mov dword [esp + 0xac], 0x9f2b994b
mov dword [esp + 0xb0], 0x932e9d28
mov dword [esp + 0xb4], 0x97259123
mov dword [esp + 0xb8], 0x6bc6952b
mov dword [esp + 0xbc], 0x6fd869b8
mov dword [esp + 0xc0], 0x63d86ddf
mov dword [esp + 0xc4], 0x67da61d9
mov dword [esp + 0xc8], 0x7bcd65c1
mov dword [esp + 0xcc], 0x7fad79d4
mov dword [esp + 0xd0], 0x73c67dc9
mov dword [esp + 0xd4], 0x77c571cc
mov dword [esp + 0xd8], 0x4bf575c7
mov dword [esp + 0xdc], 0x4f8749e4
mov dword [esp + 0xe0], 0x43894dbb
mov dword [esp + 0xe4], 0x478141b5
mov dword [esp + 0xe8], 0x5b80459e
mov dword [esp + 0xec], 0x5faa59a8
mov dword [esp + 0xf0], 0x53a55dad
mov dword [esp + 0xf4], 0x57a751a1
mov dword [esp + 0xf8], 0x2b8e55a5
mov dword [esp + 0xfc], 0x2fe829df
mov dword [esp + 0x100], 0x23ea2de4
mov dword [esp + 0x104], 0x27d621e1
mov dword [esp + 0x108], 0x3bcb25d4
mov dword [esp + 0x10c], 0x3fca39c8
mov dword [esp + 0x110], 0x33c43dfa
mov dword [esp + 0x114], 0x37fc31f1
mov dword [esp + 0x118], 0xbc135fe
mov dword [esp + 0x11c], 0xfa209c2
mov word [esp + 0x120], 0xd0c
mov byte [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xaa
ja 0x41fcef
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx esi, byte [esp + ecx + 0x80]
lea edi, [eax - 0x3a77deba]
lea ecx, [eax + esi]
add ecx, 0xc5882146
add eax, 0x46
or eax, edi
and edi, esi
and eax, esi
add eax, edi
mov esi, ecx
not esi
and esi, eax
not eax
and eax, ecx
sub eax, esi
mov dword [esp + 0xa80], eax
mov eax, dword [esp + 0xa80]
add al, 0x16
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xab
jb 0x41fc80
lea eax, [esp + 0x10ac]
lea esi, [esp + 0x80]
mov ecx, 0x28
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0x114c]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xf24]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0xfc6]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0xe82]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x34], 0
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x442c60]
jmp dword [0x442c68]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + eax*4 + 0x6c]
mov dword [esp + 0x80], 0xa3f0a1f6
mov dword [esp + 0x84], 0xdf8cddf2
mov dword [esp + 0x88], 0xdb88d98e
mov dword [esp + 0x8c], 0xd7bcd58a
mov word [esp + 0x90], 0xd1d6
mov word [ebx - 0x86], 0
mov dword [ebx - 0x8a], 0
mov dword [ebx - 0x8e], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1b
ja 0x41fe3d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x80]
lea esi, [ecx - 0x495ab045]
and esi, edx
add ecx, edx
add ecx, 0xb6a54fbb
add esi, esi
sub ecx, esi
mov dword [esp + 0xa80], ecx
mov ecx, dword [esp + 0xa80]
add cl, 0xe3
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x80], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1c
jb 0x41fdf0
movzx edx, word [eax]
lea ecx, [esp + 0x880]
test dx, dx
je 0x41fe71
add eax, 2
lea ecx, [esp + 0x880]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x41fe60
mov word [ecx], 0
movzx eax, word [esp + 0x80]
test ax, ax
je 0x41fea1
lea edx, [esp + 0x82]
nop
nop
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x41fe90
mov word [ecx], 0
jmp case.0x41fd5f.2
mov word [edx], 0
mov cx, 0x31
jmp dword [0x442c70]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + eax*4 + 0x6c]
mov dword [esp + 0x80], 0xa3f0a1f6
mov dword [esp + 0x84], 0xdf8cddf2
mov dword [esp + 0x88], 0xdb88d98e
mov dword [esp + 0x8c], 0xd7bcd58a
mov word [esp + 0x90], 0xd1d6
mov word [ebx - 0x86], 0
mov dword [ebx - 0x8a], 0
mov dword [ebx - 0x8e], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1b
ja 0x41ff7d
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x80]
lea esi, [ecx - 0x495ab045]
and esi, edx
add ecx, edx
add ecx, 0xb6a54fbb
add esi, esi
sub ecx, esi
mov dword [esp + 0xa80], ecx
mov ecx, dword [esp + 0xa80]
add cl, 0xe3
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x80], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1c
jb 0x41ff30
movzx ecx, word [eax]
test cx, cx
je 0x41ffb0
add eax, 2
lea edx, [esp + 0x880]
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41ff90
jmp 0x41ffb7
lea edx, [esp + 0x880]
mov word [edx], 0
movzx eax, word [esp + 0x80]
test ax, ax
je 0x41feb0
lea ecx, [esp + 0x82]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ffe0
jmp 0x41feb0
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ecx
mov word [edx - 2], cx
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x880]
push dword [esp + 0x40]
push 0
push 0x20019
push eax
push ecx
call fcn.0043bc10
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442c90]
mov eax, dword [case.0x41fd5f.37]
jmp case.0x41fd5f.34
mov dword [esp + 0x60], 0x800
mov dword [esp + 0x3c], 0x400
xor edi, edi
mov dword [esp + 0x2c], 0
jmp 0x420071
inc edi
lea eax, [esp + 0x3c]
lea ebx, [esp + 0xa80]
lea ecx, [esp + 0x48]
lea edx, [esp + 0x60]
push eax
push ebx
push ecx
push edx
lea eax, [esp + 0x90]
push eax
push edi
push dword [esp + 0x64]
call fcn.0043c360
add esp, 0x1c
not eax
shr eax, 0x1f
mov dword [esp + 0xc], edi
jmp dword [eax*4 + 0x442c98]
mov eax, dword [esp + 0x2c]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x442ca0]
xor ecx, ecx
cmp dword [esp + 0x48], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442ca8]
movzx eax, al
jmp dword [eax*4 + 0x442cc0]
xor ecx, ecx
cmp dword [esp + 0x48], 3
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442cc8]
jmp dword [0x442cd0]
mov dword [esp + 0x10], 0xb3d1b1f1
mov dword [esp + 0x14], 0xb7c9b5d7
mov dword [esp + 0x18], 0xcbb4c9bd
mov dword [esp + 0x1c], 0xcfcecdb8
lea eax, [esp + 0x20]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x420180
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xfa1583b8
xor eax, 0x7a1583b8
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xf8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x420140
mov eax, dword [case.0x41fd5f.22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx edi, word [esp + 0x10]
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
test di, di
je 0x4201f8
lea ecx, [esp + 0x80]
lea edx, [esp + 0x10]
mov dword [esp + 4], ecx
jmp 0x4201c8
movzx edi, word [edx]
test di, di
je 0x4201f8
movzx eax, word [ecx]
test ax, ax
je 0x4201f0
add ecx, 2
add edx, 2
mov esi, dword [esp + 4]
add esi, 2
cmp ax, di
je 0x4201e8
mov dword [esp + 4], esi
mov ecx, esi
je 0x4201c0
lea edx, [esp + 0x10]
jmp 0x4201c0
mov dword [esp + 4], 0
xor eax, eax
cmp dword [esp + 4], 0
setne al
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x442cc0]
mov eax, dword [esp + 0x3c]
cmp eax, 2
jae 0x420220
mov esi, dword [esp + 8]
jmp 0x4202d2
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x4202f0
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ecx
xor edi, edi
lea ebx, [esp + 0xa80]
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
movzx edx, word [ebx]
xor ecx, ecx
test dx, dx
setne cl
lea ebx, [ebx + ecx*2]
mov word [esi], dx
mov edx, eax
add esi, 2
inc edi
cmp eax, edi
jne 0x420250
mov eax, dword [esp + 0x2c]
sub eax, edi
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 4]
cmp ecx, 3
jb 0x4202d2
movzx ecx, word [ebx]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [ebx + edx*2]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 2], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 4], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea ebx, [ecx + ebx*2]
mov word [esi + 6], dx
add esi, 8
add eax, 0xfffffffc
jne 0x420280
mov word [esi], 0x3a
mov word [esi + 2], 0x20
add esi, 4
mov dword [esp + 8], esi
mov al, 1
mov dword [esp + 0x2c], eax
inc edi
jmp 0x420071
mov esi, dword [esp + 8]
cmp ecx, 3
jae 0x420280
jmp 0x4202d2
movzx eax, al
jmp dword [eax*4 + 0x442ce0]
mov eax, dword [esp + 0x3c]
cmp eax, 2
jae 0x42031c
mov edx, dword [esp + 8]
jmp 0x4203d8
shr eax, 1
lea esi, [eax - 1]
mov ebx, eax
lea ecx, [esp + 0xa80]
and ebx, 3
mov edx, dword [esp + 8]
je 0x420379
mov dword [esp + 0x28], esi
mov dword [esp + 4], ebx
xor ebx, ebx
lea ecx, [esp + 0xa80]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
mov edi, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, edi
mov word [edi], si
add edx, 2
inc ebx
cmp dword [esp + 4], ebx
jne 0x420350
sub eax, ebx
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
cmp esi, 3
jb 0x4203d8
nop
nop
mov esi, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 4], dx
lea edx, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [edx + ecx*2]
mov word [esi + 6], di
lea edx, [esi + 8]
add eax, 0xfffffffc
jne 0x420380
mov edi, dword [esp + 0xc]
mov word [edx], 0xa
add edx, 2
mov dword [esp + 8], edx
mov al, 1
mov dword [esp + 0x28], eax
inc edi
jmp 0x420071
mov dword [esp + 0x10], 0x5bfb5988
mov dword [esp + 0x14], 0x57e555e7
mov dword [esp + 0x18], 0x53e551df
mov dword [esp + 0x1c], 0x2f922d9e
mov word [esp + 0x20], 0x2928
lea eax, [esp + 0x20]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x420482
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x2cbe22cc]
lea esi, [eax + 0x34]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xd341dd34
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x94
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x420440
movzx edi, word [esp + 0x10]
lea eax, [esp + 0x80]
test di, di
je 0x4204dc
lea ecx, [esp + 0x80]
lea edx, [esp + 0x10]
mov eax, ecx
jmp 0x4204b8
movzx edi, word [edx]
test di, di
je 0x4204dc
movzx ebx, word [ecx]
test bx, bx
je 0x4204da
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x4204d2
mov eax, esi
mov ecx, esi
je 0x4204b0
lea edx, [esp + 0x10]
jmp 0x4204b0
xor eax, eax
test eax, eax
setne al
mov edi, dword [esp + 0xc]
jmp dword [0x442cd8]
mov dword [esp + 0x10], 0x5bfb5988
mov dword [esp + 0x14], 0x57e555e7
mov dword [esp + 0x18], 0x53e551df
mov dword [esp + 0x1c], 0x2f922d9e
mov word [esp + 0x20], 0x2928
lea eax, [esp + 0x20]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja case.0x41fd5f.28
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x2cbe22cc]
lea esi, [eax + 0x34]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xd341dd34
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x94
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x420540
jmp case.0x41fd5f.28
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], 0xdcdddedf
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1b], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe
ja 0x42061d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 0x10]
mov edx, 0x7d59d41b
sub edx, ecx
add ecx, 0xe4
and ecx, edi
or edx, edi
not edx
add edx, edi
sub edx, ecx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x30]
add cl, 0xc4
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
cmp ecx, 0xf
jb 0x4205d0
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x420670
mov edx, dword [esp + 0x10]
xor edi, edi
mov ebx, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420650
inc edi
cmp ecx, edi
jne 0x420640
jmp 0x420670
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x420670
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x41fd5f.37]
lea ebx, [esp + 0x120]
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x58]
inc ecx
mov eax, dword [case.0x41fd5f.4]
mov edx, dword [esp + 0x5c]
jmp eax
mov eax, dword [case.0x41fd5f.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp cx, 0x35
setb al
jmp dword [eax*4 + 0x442c88]
mov edx, dword [esp + 0x34]
inc edx
xor eax, eax
mov ecx, edx
mov dword [esp + 0x34], edx
cmp edx, 5
setne al
jmp dword [eax*4 + 0x442c60]
jmp dword [0x442d08]
mov esi, dword [esp + 0x54]
jmp dword [0x442d18]
push esi
call fcn.00408a60
add esp, 4
mov eax, dword [case.0x41fd5f.51]
mov edx, dword [esp + 8]
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x38]
inc ecx
xor eax, eax
mov dword [esp + 0x38], ecx
cmp ecx, dword [esp + 0x50]
setb al
jmp dword [eax*4 + 0x442c38]
mov word [edx], 0
mov ebx, dword [esp + 0x28]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x442d38]
movzx ecx, word [esp + 0x11f0]
test cx, cx
je 0x42089c
mov dword [esp + 4], 0
lea eax, [esp + 0x11f0]
jmp 0x420772
add dword [esp + 4], esi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, ebx
je 0x42079c
cmp eax, edx
jae 0x42079c
mov ebx, edx
movzx edi, cx
xor ecx, ecx
cmp edi, 0x800
setb dl
mov esi, 1
cmp edi, 0x80
jb 0x420760
mov cl, dl
xor ecx, 3
mov esi, ecx
jmp 0x420760
mov dword [esp + 8], edx
mov esi, dword [esp + 4]
lea edi, [esi + 1]
push edi
call fcn.00408a50
add esp, 4
test esi, esi
mov dword [esp + 0x2c], eax
jle 0x4208b2
mov ecx, esi
add esi, eax
add edi, eax
lea edx, [esp + 0x11f0]
mov ecx, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], esi
jmp 0x4207f4
mov byte [eax], bl
mov edi, 1
add edx, 2
add eax, edi
cmp eax, esi
jae 0x4208b2
cmp edx, dword [esp + 8]
jae 0x4208b2
movzx ebx, word [edx]
test bx, bx
je 0x4208b2
cmp bx, 0x7f
jbe 0x4207e0
mov esi, ecx
sub esi, eax
mov edi, esi
or edi, 0xfffffffe
and esi, 0xfffffffe
add edi, esi
inc edi
cmp edi, 2
jb 0x420851
movzx esi, bx
cmp esi, 0x7ff
ja 0x420851
mov ecx, ebx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
mov ecx, dword [esp + 0x28]
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
mov edi, 2
mov esi, dword [esp + 0xc]
jmp 0x4207e7
mov esi, edi
xor edi, edi
cmp esi, 3
mov esi, dword [esp + 0xc]
jb 0x4207e7
movzx edi, bx
mov ecx, edi
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
mov ecx, edi
shr ecx, 6
mov edi, ecx
xor edi, 0xc0
or ecx, 0x3f
and ecx, edi
mov edi, dword [esp + 0x28]
add cl, 0x80
mov byte [eax + 1], cl
mov ecx, edi
and bl, 0x3f
or bl, 0x80
mov byte [eax + 2], bl
mov edi, 3
jmp 0x4207e7
mov dword [esp + 4], 0
push 1
call fcn.00408a50
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp + 8]
mov byte [eax], 0
mov dword [esp + 0x80], 0x2f222171
mov dword [esp + 0x84], 0x2357562d
mov dword [esp + 0x88], 0x38343631
mov dword [esp + 0x8c], 0x3b3b5273
mov dword [esp + 0x90], 0x383d3e3c
mov dword [esp + 0x94], 0x3834557b
mov dword [esp + 0x98], 0xbec6c0be
mov dword [esp + 0x9c], 0xd7ca83cf
mov word [esp + 0xa0], 0x51c4
mov dword [esp + 0xa2], 0
mov word [esp + 0xa6], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0x27
ja 0x4209b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov edx, dword [esp + 0x880]
movzx edx, byte [esp + edx + 0x80]
lea esi, [eax + 0x63507b68]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add eax, esi
add eax, 0x63507b67
mov dword [esp + 0xa80], eax
mov eax, dword [esp + 0xa80]
add al, 0x28
mov edx, dword [esp + 0x880]
mov byte [esp + edx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0x28
jb 0x420950
lea eax, [esp + 0x80]
push dword [esp + 4]
mov esi, dword [esp + 0x30]
push esi
push eax
call fcn.004095a0
mov ebx, eax
jmp dword [0x442d40]
push esi
call fcn.00408a60
add esp, 4
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret