Function at 0x4227d0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x280
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x70], 0xb326b123
mov dword [esp + 0x74], 0xb717b511
mov dword [esp + 0x78], 0xab74a935
mov dword [esp + 0x7c], 0xaf26ad09
mov dword [esp + 0x80], 0xa3a2a105
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x23
ja 0x421175
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add al, 0x48
xor al, byte [esp + ecx + 0x70]
add al, 8
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x24
jb 0x421150
lea ebx, [esp + 0x70]
lea ecx, [esp + 0x48]
push ebx
call fcn.00436610
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44472c]
lea ecx, [esp + 0x48]
push 0x410
call fcn.004368f0
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444734]
mov eax, dword [case.0x421188.1]
xor ecx, ecx
jmp eax
jmp dword [0x444750]
mov dword [esp + 0x70], 0x603b7221
mov dword [esp + 0x74], 0x7660051e
mov dword [esp + 0x78], 0x6a616b05
mov dword [esp + 0x7c], 0x1f646809
mov dword [esp + 0x80], 0x7e132c00
mov dword [esp + 0x84], 0x77162811
mov dword [esp + 0x88], 0x7805180c
mov dword [esp + 0x8c], 0x7c277e13
mov dword [esp + 0x90], 0x5c6a7014
mov dword [esp + 0x94], 0x45b4d6d
mov dword [esp + 0x98], 0x93406965
mov dword [esp + 0x9c], 0
mov word [esp + 0xa0], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x31
ja 0x421292
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x70]
lea esi, [eax + 0x4518361f]
lea edx, [eax + 0x1f]
mov edi, edx
and edi, esi
and edi, ecx
or edx, esi
and edx, ecx
add edx, edi
add eax, ecx
add eax, 0x4518361f
sub eax, edx
add al, 0x27
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x32
jb 0x421250
lea eax, [esp + 0x70]
lea edx, [esp + 0x64]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push eax
push edx
call fcn.00436ec0
jmp case.0x421188.9
lea eax, [esp + 0x64]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push ebx
push eax
call fcn.00436ec0
jmp dword [0x444758]
mov dword [esp + 0x70], 0x603b7221
mov dword [esp + 0x74], 0x7660051e
mov dword [esp + 0x78], 0x6a616b05
mov dword [esp + 0x7c], 0x1f646809
mov dword [esp + 0x80], 0x7e132c00
mov dword [esp + 0x84], 0x77162811
mov dword [esp + 0x88], 0x7805180c
mov dword [esp + 0x8c], 0x7c277e13
mov dword [esp + 0x90], 0x5c6a7014
mov dword [esp + 0x94], 0x45b4d6d
mov dword [esp + 0x98], 0x93406965
mov dword [esp + 0x9c], 0
mov word [esp + 0xa0], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x31
ja 0x4212b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x70]
lea esi, [eax + 0x4518361f]
lea edx, [eax + 0x1f]
mov edi, edx
and edi, esi
and edi, ecx
or edx, esi
and edx, ecx
add edx, edi
add eax, ecx
add eax, 0x4518361f
sub eax, edx
add al, 0x27
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x32
jb 0x421360
jmp 0x4212b0
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x44475c]
mov eax, edi
sub eax, esi
sar eax, 2
imul eax, eax, 0x211
push eax
call fcn.00436470
add esp, 4
jmp dword [0x44476c]
mov dword [esp + 0x3c], 0
lea ecx, [esp + 0x71]
mov dword [esp + 0x58], ecx
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [esp + 0x38], eax
mov dword [esp + 4], eax
mov dword [esp + 0x5c], edi
jmp dword [ecx*4 + 0x444774]
jmp dword [0x444784]
mov ecx, dword [esp + 0x3c]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4447fc]
mov esi, dword [esp + 0x38]
jmp dword [0x444804]
mov esi, dword [esp + 0x60]
add esi, 4
xor eax, eax
mov edi, dword [esp + 0x5c]
cmp esi, edi
setne al
jmp dword [eax*4 + 0x444774]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], esi
mov esi, dword [esi]
push 0x200
push 0
push ebx
call fcn.004086e0
add esp, 0xc
lea ecx, [esp + 0x48]
push 0
push 0x200
push ebx
push esi
call fcn.00436d40
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44478c]
movzx ecx, byte [esp + 0x70]
xor eax, eax
test cl, cl
je 0x4214c2
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x4214c0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4214b0
jmp 0x4214c2
mov eax, edx
mov ecx, dword [case.0x421188.29]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4447a4]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
je 0x421502
mov edx, esi
nop
cmp cl, 0x2e
je 0x421500
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4214f0
jmp 0x421502
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x4447ac]
mov ecx, edi
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x421528
cmp eax, 0x2e
jne 0x421529
dec edx
movzx eax, byte [ecx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x30], ecx
je 0x42153c
cmp eax, 0x2e
jne 0x42153d
dec edx
mov dword [esp + 0x54], edx
lea eax, [edx + 1]
push eax
call fcn.00436470
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x34], esi
cmp edi, esi
je 0x421651
xor esi, esi
mov edi, 2
jmp 0x421582
mov ecx, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, ecx
cmp edi, edx
mov edi, eax
jae 0x421651
mov ebx, dword [esp + 0x34]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.0040f1e0
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.0040f1e0
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0xc]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 8]
mov byte [ecx + esi], al
lea ecx, [esi + 1]
mov edx, dword [esp + 0x30]
cmp edi, edx
jae 0x421570
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + edi]
push eax
mov esi, ecx
call fcn.0040f1e0
mov ecx, esi
mov edx, dword [esp + 0x34]
add esp, 4
cmp al, 0x40
je 0x421570
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0xc]
lea ecx, [esi + 2]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 8]
mov byte [ecx + esi + 1], al
lea eax, [edi + 1]
cmp eax, edx
jae 0x421566
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040f1e0
mov edx, dword [esp + 0x34]
add esp, 4
cmp al, 0x40
mov ecx, dword [esp + 0x44]
je 0x421570
shl bl, 6
add al, bl
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov byte [ecx + esi + 2], al
add esi, 3
mov ecx, esi
jmp 0x421570
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x54]
mov byte [esi + eax], 0
jmp dword [0x4447b8]
push esi
call fcn.00401780
add esp, 4
push esi
call fcn.00401780
add esp, 4
jmp dword [0x4447bc]
mov edi, eax
lea ebx, [esp + 0x70]
jmp dword [0x4447c4]
push esi
call fcn.00408500
add esp, 4
push edi
call fcn.004020a0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4447cc]
jmp 0x421799
mov dword [esp + 0x10], 0xe489fdf5
mov dword [esp + 0x14], 0xfaf0f7e5
mov word [esp + 0x18], 0xe9fb
mov byte [esp + 0x1a], 0x62
mov dword [esp + 0x1b], 0
mov word [esp + 0x1f], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x10
ja 0x42171b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x32]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0xd4
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x11
jb 0x4216f0
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00401ff0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4447d4]
mov edx, dword [esp + 4]
jmp 0x421769
movzx ecx, byte [eax]
test cl, cl
je 0x42175d
inc eax
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421750
jmp 0x421761
mov edx, dword [esp + 4]
mov word [edx], 0x203a
add edx, 2
mov ecx, dword [esp + 0x40]
movzx eax, byte [esp + 0x70]
test al, al
je 0x42178b
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 0x421780
mov byte [edx], 0xa
inc edx
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x3c], eax
push edi
call fcn.00402310
add esp, 4
mov eax, dword [case.0x421188.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test esi, esi
jne 0x421896
jmp case.0x421188.1
mov edi, dword [esp + 4]
mov byte [edi], 0
mov esi, dword [esp + 0x38]
sub edi, esi
mov dword [esp + 0x70], 0x9f625d8d
mov dword [esp + 0x74], 0x63979699
mov dword [esp + 0x78], 0x6c68669d
mov dword [esp + 0x7c], 0x9a6a8eab
mov dword [esp + 0x80], 0x97b1909d
mov dword [esp + 0x84], 0x75838e73
mov dword [esp + 0x88], 0x737eb773
mov dword [esp + 0x8c], 0xe97c
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
ja 0x421863
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x70]
lea eax, [ecx + edx]
add eax, 0x5e
add ecx, 0x5e
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x6e
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x20
jb 0x421830
lea eax, [esp + 0x70]
mov ecx, dword [ebp + 8]
push edi
push esi
push eax
call fcn.00408e80
mov ecx, eax
jmp dword [0x444804]
push esi
mov esi, ecx
call fcn.00408500
mov ecx, esi
add esp, 4
and cl, 1
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
test esi, esi
je case.0x421188.1
cmp esi, edi
je case.0x421188.1
push esi
mov esi, ecx
call fcn.00408500
mov ecx, esi
add esp, 4
mov esi, ecx
lea ecx, [esp + 0x48]
call fcn.00436a40
mov eax, dword [case.0x421730.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [case.0x421509.31]
mov eax, esi
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dword [esi + 0x28], ecx
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0xf4], esp
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x30], esp
sub esp, 0x40
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x108], eax
mov esp, eax
push eax
mov dword [esi + 0xf8], esp
push eax
mov dword [esi + 0xe8], esp
sub esp, 8
mov dword [esi + 0xe4], esp
sub esp, 8
mov dword [esi + 0x10c], esp
sub esp, 8
mov dword [esi + 0xa4], esp
sub esp, 0x30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0xac], eax
mov esp, eax
mov eax, 0x20219
mov ecx, 1
mov dword [esi + 4], 0
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edx
jmp dword [ecx*4 + 0x44483c]
mov dword [esi + 0x40], 0xb540da8
mov dword [esi + 0x44], 0x175d0945
mov dword [esi + 0x48], 0x134d155d
mov dword [esi + 0x4c], 0x1f40114c
mov dword [esi + 0x50], 0x1bbe1d45
mov dword [esi + 0x54], 0x6727194d
mov dword [esi + 0x58], 0x632a652b
mov dword [esi + 0x5c], 0x6f3c6129
mov dword [esi + 0x60], 0x6bce6d21
mov dword [esi + 0x64], 0x77256937
mov dword [esi + 0x68], 0x732e753e
mov dword [esi + 0x6c], 0x7f3f712b
mov dword [esi + 0x70], 0x7b377d22
mov dword [esi + 0x74], 0x471c79dc
mov dword [esi + 0x78], 0x43f645e5
mov dword [esi + 0x7c], 0x4fe341fa
mov dword [esi + 0x80], 0x4b154de8
mov dword [esi + 0x84], 0x57fb49f4
mov dword [esi + 0x88], 0x53e755f5
mov word [esi + 0x8c], 0x5150
lea ecx, [esi + 0x8e]
mov byte [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x5a
ja 0x421ad4
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
movzx edi, byte [esi + ecx + 0x40]
lea ecx, [edx + edi]
add ecx, 0x1d5fb22a
add edx, 0x1d5fb22a
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xda
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x5b
jb 0x421a90
lea ecx, [esi + 0xc]
lea edx, [esi + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043b990
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444844]
lea ecx, [esi + 0x100]
lea eax, [esi + 0x3c]
push ecx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 0xc]
call fcn.0043bda0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44484c]
mov ecx, dword [esi + 0x100]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x421b35
mov eax, 0xffffffff
push eax
call fcn.00436470
add esp, 4
mov edi, eax
mov dword [esi + 0x40], 0x3b6015d
mov dword [esi + 0x44], 0x1f901d8f
mov dword [esi + 0x48], 0x1bac19bd
mov dword [esi + 0x4c], 0x174415ae
mov dword [esi + 0x50], 0x139c11b5
mov dword [esi + 0x54], 0x6f6c6daa
lea eax, [esi + 0x8e]
mov dword [eax - 0x32], 0
mov dword [eax - 0x2e], 0
mov dword [eax - 0x36], 0
mov dword [esi + 0xb0], 0
mov eax, dword [esi + 0xb0]
cmp eax, 0x23
ja 0x421bdd
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
movzx ebx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x2b]
mov ecx, ebx
not ecx
or ecx, edx
and edx, ebx
add edx, ecx
sub eax, edx
add al, 0xfd
mov ecx, dword [esi + 0xb0]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0xb0]
mov eax, dword [esi + 0xb0]
cmp eax, 0x24
jb 0x421ba0
lea eax, [esi + 0x100]
push eax
push edi
push 0
lea eax, [esi + 0x40]
push eax
push dword [esi + 0xc]
call fcn.0043c450
add esp, 0x14
shr eax, 0x1f
mov dword [esi + 4], edi
jmp dword [eax*4 + 0x444854]
mov dword [esi + 4], 0
jmp dword [0x44485c]
push edi
call fcn.00408500
add esp, 4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov byte [esi + 0x58], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0x92919097
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x18
ja 0x421cb4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
movzx edi, byte [esi + ecx + 0x40]
lea ecx, [edx + edi]
add ecx, 0x651d4743
add edx, 0x651d4743
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x2b
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x19
jb 0x421c70
mov ecx, dword [0x44a94c]
test ecx, ecx
je 0x421d10
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x44a950]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x421d03
inc edi
cmp ecx, edi
jne 0x421cd0
jmp 0x421d10
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x444894]
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x44489c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x421d21
nop
nop
nop
nop
nop
xor ecx, ecx
cmp dword [esi + 4], 0
setne cl
mov eax, 2
mov ebx, dword [esi + 0x1c]
jmp dword [ecx*4 + 0x444864]
lea edi, [esi + 0x40]
jmp dword [0x444870]
push eax
push 1
push dword [0x44a954]
push ecx
call fcn.004384a0
add esp, 0x10
xor ecx, ecx
cmp dword [esi + 4], 0
setne cl
mov eax, 2
mov ebx, dword [esi + 0x1c]
jmp dword [ecx*4 + 0x444864]
xor eax, eax
cmp dword [esi + 0x40], 1
sete al
jmp dword [eax*4 + 0x444884]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x44488c]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x444894]
mov eax, 0x20119
xor ecx, ecx
jmp dword [ecx*4 + 0x44483c]
jmp dword [0x4448b8]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x444894]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4448a4]
movzx eax, al
jmp dword [eax*4 + 0x44487c]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x44488c]
push edi
call fcn.0043ae40
add esp, 4
push edi
call fcn.0043ae40
add esp, 4
jmp dword [0x444878]
xor eax, eax
cmp dword [esi + 4], 0
sete al
jmp dword [eax*4 + 0x4448bc]
mov dword [esi + 0x40], 0xdbb9d9bc
mov dword [esi + 0x44], 0xe790e593
mov dword [esi + 0x48], 0xe38be18e
mov dword [esi + 0x4c], 0xef8aed83
mov dword [esi + 0x50], 0xeb9de98b
mov dword [esi + 0x54], 0xf798f582
mov dword [esi + 0x58], 0xf39df199
mov dword [esi + 0x5c], 0xff80fdca
mov dword [esi + 0x60], 0xfb94f994
lea eax, [esi + 0x64]
mov word [esi + 0x64], 0x504
mov dword [esi + 0x66], 0
mov dword [esi + 0x6a], 0
mov word [esi + 0x6e], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x2f
ja 0x421ed4
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
movzx edi, byte [esi + ecx + 0x40]
lea ecx, [edx + edi]
add ecx, 0x6287635c
add edx, 0x6287635c
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x7c
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x30
jb 0x421e90
lea edi, [esi + 0xb0]
lea edx, [esi + 0x40]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0xd4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esi + 4]
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421f00
cmp eax, 0xffffffd9
jge 0x421f29
mov eax, 0xffffffff
jmp 0x421f2c
mov eax, dword [case.0x421d54.26]
nop
nop
nop
nop
jmp eax
xor eax, eax
jmp 0x422caa
add eax, 0x26
push eax
call fcn.00436470
add esp, 4
mov edi, eax
mov eax, dword [esi + 4]
jmp dword [0x4448d8]
mov edi, dword [edi]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00436470
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xa8]
mov dword [eax], ecx
push 0
push edi
mov edi, ecx
push ecx
push dword [ebx]
call fcn.0043b5a0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44495c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a2c]
push edi
call fcn.00408500
add esp, 4
mov ebx, dword [esi + 0x34]
jmp case.0x422747.18
mov eax, dword [esi + 0xf4]
mov ebx, dword [eax]
mov byte [edi + ebx], 0
push 0x20
call fcn.00436470
add esp, 4
mov edx, edi
mov edi, eax
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 eax, dword [esi + 0x30]
mov dword [eax], edi
mov ecx, edi
push ebx
push edx
call fcn.00424630
movzx eax, al
jmp dword [eax*4 + 0x444964]
mov ebx, dword [esi + 0x108]
jmp dword [0x444970]
jmp 0x422fc3
mov ecx, dword [eax]
mov dword [esi + 4], 0
cmp dword [eax + 0x18], 3
jne case.default.0x42202c
mov eax, dword [eax + 0x10]
mov dword [esi + 4], eax
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x44498c]
jmp dword [0x44499c]
xor eax, eax
cmp dword [esi + 4], 0
setne al
jmp dword [eax*4 + 0x4449a4]
mov dword [esi + 0x14], ecx
mov eax, dword [esi + 4]
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4220a1
mov edi, dword [esi + 4]
sub ecx, edi
shr ecx, 1
mov dword [esi + 0x18], ecx
lea eax, [ecx + 1]
push eax
call fcn.00436470
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xe8]
mov dword [esi + 0x1c], ecx
mov dword [eax], ecx
xor eax, eax
mov dword [esi + 0x20], 0
movsx ecx, byte [edi + eax*2]
xor edx, edx
test ecx, ecx
setne dl
xor eax, eax
jmp dword [edx*4 + 0x4449ac]
mov ecx, dword [esi + 0x1c]
mov byte [ecx + eax], 0
push 0
push 0x10
push 0
push dword [esi + 0x14]
call fcn.00424a40
add esp, 0x10
mov dword [esi + 4], eax
xor ebx, ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x10]
setne bl
jmp dword [ebx*4 + 0x4449b4]
or dl, cl
mov ecx, dword [esi + 0x1c]
mov byte [ecx + eax], dl
inc eax
mov ecx, dword [esi + 4]
movsx ecx, byte [ecx + eax*2]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x4449ac]
mov edi, ecx
or edi, 0x20
add edi, 0xffffff9f
mov ebx, ecx
add ebx, 0xffffffd0
mov edx, ecx
cmp ebx, 0xa
jb 0x422114
mov dl, 0xf
cmp edi, 6
jae 0x42211e
add cl, 9
mov edx, ecx
mov ecx, dword [esi + 4]
movsx ecx, byte [ecx + eax*2 + 1]
mov ebx, ecx
or ebx, 0x20
lea edi, [ebx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x422138
mov cl, 0xff
shl dl, 4
cmp edi, 6
jae 0x4220e0
add bl, 0xa9
mov ecx, ebx
jmp 0x4220e0
mov ecx, dword [eax]
mov dword [esi + 0x20], ecx
xor edi, edi
jmp dword [edi*4 + 0x4449c4]
add eax, 8
xor ebx, ebx
cmp eax, dword [esi + 0x10]
setne bl
jmp dword [ebx*4 + 0x4449b4]
mov edi, dword [eax + 4]
mov ebx, edi
shr ebx, 0x1c
shl edi, 4
or edi, 1
xor ebx, edx
xor edi, dword [esi + 4]
xor ecx, ecx
or edi, ebx
sete cl
jmp dword [ecx*4 + 0x4449bc]
mov ecx, 1
jmp dword [ecx*4 + 0x4449c4]
mov eax, dword [case.0x421d54.93]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov edx, dword [esi + 0x20]
test edx, edx
setne al
mov ecx, dword [esi + 0xa4]
jmp dword [eax*4 + 0x4449dc]
mov eax, dword [esi + 0xe4]
mov edi, dword [esi + 0x18]
mov dword [eax], edi
mov edi, dword [esi + 0x1c]
mov dword [eax + 4], edi
mov eax, 0xffffffff
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422233
mov edi, dword [esi + 0x10c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [ecx], 0
mov dword [ecx + 4], 0
push 0x1d768438
push dword [0x44a958]
mov ebx, ecx
mov dword [esi + 0x20], edx
call fcn.0043a4d0
add esp, 8
push ebx
push 1
push 0
push 0
push edi
push 0
push dword [esi + 0xe4]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4449e4]
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
mov edx, dword [esi + 0x20]
movzx eax, byte [edx]
test al, al
je 0x42225b
inc edx
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x422250
mov byte [ecx], 0x3a
lea eax, [ecx + 2]
mov edx, dword [esi + 0x24]
mov dword [edx], eax
mov byte [ecx + 1], 0x20
mov ecx, dword [esi + 0xa4]
mov edx, dword [ecx]
test edx, edx
je 0x4222a3
mov ecx, dword [ecx + 4]
mov edi, edx
and edi, 3
je 0x4222a7
mov dword [esi + 4], edx
xor ebx, ebx
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x422285
add eax, ebx
mov edi, dword [esi + 4]
mov edx, edi
sub edx, ebx
mov ebx, eax
jmp 0x4222a9
mov ebx, eax
jmp 0x4222e7
mov edi, edx
cmp edi, 4
jb 0x4222e7
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x4222ae
lea eax, [ebx + 1]
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
mov byte [ebx], 0xa
mov eax, dword [esi + 0x2c]
mov byte [eax], 1
push 0x4835118f
push dword [0x44a944]
call fcn.0043a4d0
add esp, 8
mov ecx, dword [esi + 0xa4]
push dword [ecx + 4]
call eax
mov eax, dword [case.0x421d54.94]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x421d54.104]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0xe8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a0c]
push eax
call fcn.00408500
add esp, 4
jmp case.0x42202c.0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421d54.111]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esi + 0xf8]
mov eax, dword [ecx]
add eax, 4
mov eax, dword [eax]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444984]
mov eax, dword [esi + 0x30]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a24]
mov eax, dword [esi + 0xa8]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a2c]
mov ebx, dword [esi + 0x34]
jmp case.0x422747.18
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x4223f1
mov eax, dword [esi + 4]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4223e0
mov word [eax], 0
movzx ecx, word [esi + 0xb0]
test cx, cx
je 0x422421
lea edx, [esi + 0xb2]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422410
mov word [eax], 0
mov eax, dword [esi + 4]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x422451
mov eax, dword [esi + 4]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422440
mov word [eax], 0
movzx ecx, word [esi + 0xb0]
test cx, cx
je 0x422481
lea edx, [esi + 0xb2]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422470
mov word [eax], 0
mov eax, dword [esi + 4]
jmp dword [0x4448e0]
jmp dword [0x4448e4]
push eax
call fcn.00408500
add esp, 4
lea eax, [esi + 0x3c]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043b090
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4448ec]
mov dword [esi + 0x10], 0
mov dword [esi + 8], 0
jmp dword [0x44492c]
mov dword [esi + 0xd8], edi
lea eax, [esi + 0xc]
push 0
push eax
push dword [esi + 0x3c]
call fcn.0043b480
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esi + 0x10], 0
jmp dword [eax*4 + 0x4448f4]
mov edi, dword [esi + 0xc]
lea eax, [edi + 1]
push eax
call fcn.00436470
add esp, 4
mov ebx, eax
push 0
push edi
push eax
push dword [esi + 0x3c]
call fcn.0043b5a0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esi + 0x104], ebx
jmp dword [eax*4 + 0x4448fc]
mov dword [esi + 0x10], 0
xor ebx, ebx
jmp dword [0x444924]
push dword [esi + 0x104]
call fcn.00408500
add esp, 4
mov dword [esi + 8], ebx
mov eax, dword [esi + 0x3c]
mov byte [esi + 0x58], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0x92919097
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x18
ja 0x4225d5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx edi, byte [esi + ecx + 0x40]
lea ecx, [edx + edi]
add ecx, 0x651d4743
add edx, 0x651d4743
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x2b
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x19
jb 0x4225a0
mov ecx, dword [0x44a94c]
test ecx, ecx
je 0x42260c
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x44a950]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x422600
inc edi
cmp ecx, edi
jne 0x4225f0
jmp 0x42260c
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x42277d
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0xd8]
jmp dword [0x44492c]
jmp dword [0x444938]
mov edi, ebx
mov ebx, dword [esi + 0xc]
mov byte [edi + ebx], 0
push 0x20
call fcn.00436470
add esp, 4
mov ecx, eax
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 eax, dword [esi + 0xec]
mov dword [eax], ecx
mov dword [esi + 4], ecx
push ebx
push edi
call fcn.00424630
movzx eax, al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x444904]
mov edx, dword [esi + 8]
mov dword [edx], 0xc7d4cee3
mov dword [edx + 4], 0xd2c4d4c3
mov dword [edx + 8], 0x372b1ff7
mov dword [edx + 0xc], 0x1cf1283a
mov dword [edx + 0x10], 0x3e232434
mov dword [edx + 0x14], 0x242504fb
mov dword [edx + 0x18], 0x2f242c27
mov word [edx + 0x1c], 0xdd2f
mov dword [edx + 0x1e], 0
mov dword [edx + 0x22], 0
mov dword [edx + 0x26], 0
mov word [edx + 0x2a], 0
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 0x2b
ja 0x422735
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
movzx edx, byte [edx + eax]
lea eax, [ecx + edx]
add eax, 0xc86f878
add ecx, 0xc86f878
and ecx, edx
mov edx, dword [esi + 8]
add ecx, ecx
sub eax, ecx
add al, 0xb8
mov ecx, dword [esi + 0x40]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
cmp eax, 0x2c
jb 0x4226f0
mov ecx, dword [esi + 4]
push edx
call fcn.00424820
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x44490c]
mov dword [esi + 0x10], edi
mov eax, dword [esi + 0xec]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44491c]
mov ecx, edi
call fcn.004249a0
push edi
call fcn.00408500
add esp, 4
jmp dword [0x444924]
push eax
push 1
push dword [0x44a954]
push ecx
call fcn.004384a0
add esp, 0x10
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0xd8]
jmp dword [0x44492c]
jmp dword [0x444924]
add eax, 8
xor ebx, ebx
xor edi, edi
mov dword [esi + 0xdc], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xe0], eax
mov ecx, dword [eax]
mov edx, edi
sub edx, ebx
sar edx, 3
mov dword [esi + 0x18], ebx
mov dword [esi + 0xf0], edi
cmp edi, dword [esi + 0xdc]
mov dword [esi + 0x14], ecx
jne 0x42288c
mov dword [esi + 0x10], edi
push eax
call fcn.00408500
add esp, 4
test bl, bl
setne al
mov ecx, dword [esi + 0x10]
jmp 0x422c62
mov eax, dword [esi + 0x24]
jmp dword [0x444a44]
mov ecx, dword [eax]
mov byte [ecx], 0
jmp dword [0x444a4c]
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov byte [eax], 0
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
mov byte [ecx], 0
jmp dword [0x444a4c]
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
mov ebx, dword [esi + 0xac]
jmp dword [0x444a54]
jmp dword [0x444a60]
jmp dword [0x444a60]
sub edx, ecx
mov dword [ebx], 0xcff2f1a1
mov dword [ebx + 4], 0xf3c7c6cd
mov dword [ebx + 8], 0xf8c4c6c1
mov dword [ebx + 0xc], 0xcafade83
mov dword [ebx + 0x10], 0xe7bdfcf1
mov dword [ebx + 0x14], 0xf9f3fefb
mov dword [ebx + 0x18], 0xc3ceb7cb
mov word [ebx + 0x1c], 0x5dc8
mov dword [ebx + 0x1e], 0
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov word [ebx + 0x2a], 0
mov dword [esi + 0x40], 0
mov ecx, dword [esi + 0x40]
cmp ecx, 0x2b
ja 0x422bd9
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x40]
mov ebx, dword [esi + 0xac]
movzx ebx, byte [ebx + edi]
lea edi, [ecx + ebx]
add edi, 0xd81cf10
add ecx, 0xd81cf10
and ecx, ebx
add ecx, ecx
mov ebx, edi
not ebx
and ebx, ecx
not ecx
and ecx, edi
sub ecx, ebx
mov ebx, dword [esi + 0xac]
add cl, 0x90
mov edi, dword [esi + 0x40]
mov byte [ebx + edi], cl
inc dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
cmp ecx, 0x2c
jb 0x422b90
mov ecx, dword [ebp + 8]
push edx
push eax
push ebx
call fcn.00408e80
mov ebx, eax
mov eax, dword [esi + 0x2c]
mov byte [eax], bl
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a64]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44497c]
mov eax, dword [esi + 0x30]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a24]
mov ecx, edi
call fcn.004249a0
push edi
call fcn.00408500
add esp, 4
mov eax, dword [esi + 0xa8]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a2c]
add eax, 8
mov eax, dword [eax]
mov ecx, dword [esi + 0xf8]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444984]
xor eax, eax
mov edi, dword [esi + 8]
test edi, edi
je 0x422caa
cmp edi, ecx
je 0x422caa
mov dword [esi + 4], eax
jmp 0x422c84
cmp edi, ecx
je 0x422c9c
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x422c80
push eax
mov ebx, ecx
call fcn.00408500
mov ecx, ebx
add esp, 4
jmp 0x422c80
push dword [esi + 8]
call fcn.00408500
add esp, 4
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx]
mov byte [esi + 0x58], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0x92919097
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x18
ja 0x422d35
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx edi, byte [esi + ecx + 0x40]
lea ecx, [edx + edi]
add ecx, 0x651d4743
add edx, 0x651d4743
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x2b
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x19
jb 0x422d00
mov ecx, dword [0x44a94c]
test ecx, ecx
je case.default.0x422d8b
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x44a950]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x422d60
inc edi
cmp ecx, edi
jne 0x422d50
jmp case.default.0x422d8b
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x422d6d
mov ecx, dword [esi + 0x28]
jmp case.0x422747.16
push eax
push 1
push dword [0x44a954]
push ecx
call fcn.004384a0
add esp, 0x10
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a34]
mov eax, dword [esi + 0x2c]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x444a3c]
mov eax, dword [ecx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a34]
push eax
call fcn.00408500
add esp, 4
mov eax, dword [esi + 0x2c]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x444a3c]
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a64]
push 0
mov edi, dword [esi + 0xf4]
push edi
mov ebx, dword [esi + 0x34]
push dword [ebx]
call fcn.0043b480
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444954]
mov eax, ecx
sub eax, edx
sar eax, 3
imul eax, eax, 0x221
push eax
call fcn.00436470
add esp, 4
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
mov eax, dword [esi + 0x2c]
mov byte [eax], 0
mov edi, dword [esi + 0x20]
mov dword [edi], 0xf3be8de9
mov dword [edi + 4], 0xf751f163
mov dword [edi + 8], 0xfb56f555
mov dword [edi + 0xc], 0xff6ef9b9
mov dword [edi + 0x10], 0xe3a6fd6c
mov dword [edi + 0x14], 0xe772e141
mov dword [edi + 0x18], 0xeb8fe545
mov dword [edi + 0x1c], 0xef59e954
mov dword [edi + 0x20], 0xd377ed78
mov dword [edi + 0x24], 0xd77bd171
mov dword [edi + 0x28], 0xdb76d568
mov dword [edi + 0x2c], 0xdf79d94b
mov dword [edi + 0x30], 0xc36edd7d
mov dword [edi + 0x34], 0xc75cc192
mov dword [edi + 0x38], 0xcb60c560
lea eax, [edi + 0x3c]
mov dword [esi + 4], eax
mov word [edi + 0x3c], 0xc9c8
mov dword [edi + 0x3e], 0
mov dword [edi + 0x42], 0
mov dword [edi + 0x46], 0
mov dword [edi + 0x49], 0
mov dword [esi + 0x40], 0
mov ecx, dword [esi + 0x40]
cmp ecx, 0x4c
ja 0x422f09
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x20]
movzx edi, byte [edi + ecx]
lea ecx, [edx + edi]
add ecx, 0xfbe7053e
add edx, 0xfbe7053e
and edx, edi
mov edi, dword [esi + 0x20]
add edx, edx
sub ecx, edx
add cl, 0x4e
mov edx, dword [esi + 0x40]
mov byte [edi + edx], cl
inc dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
cmp ecx, 0x4d
jb 0x422ed0
mov edx, dword [esi + 0xfc]
mov eax, edi
mov edi, edx
mov ecx, 0xf
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, edx
add edi, 0x3c
mov ecx, 1
mov eax, dword [esi + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
push ebx
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x449940]
mov ebx, dword [ebx]
test ebx, ebx
jns 0x422f4b
mov eax, 0xffffffff
jmp 0x422f4e
lea eax, [ebx + ebx]
push eax
call fcn.00436470
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x28]
mov dword [eax], edi
push dword [esi + 0x1c]
push ebx
push edi
push 0x1e
push dword [esi + 0xfc]
push 0
call dword [0x449940]
push 0x60
push 3
push 0x120089
push dword [esi + 0x34]
push edi
call fcn.0043b090
mov ecx, dword [esi + 0x28]
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44494c]
push edi
call fcn.00408500
add esp, 4
push edi
call fcn.00408500
add esp, 4
jmp dword [0x444940]
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
cmp edx, ecx
sete al
jmp dword [eax*4 + 0x444944]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
mov dword [ebx], 0xf7c4ced3
mov dword [ebx + 4], 0xc2f4c4f3
mov dword [ebx + 8], 0xc7cbdf87
mov dword [ebx + 0xc], 0xdc81c8fa
mov dword [ebx + 0x10], 0xfef3f4c4
mov dword [ebx + 0x14], 0xf9f996bb
mov dword [ebx + 0x18], 0xcff9fcf6
mov dword [ebx + 0x1c], 0xf7fdfc9f
mov word [ebx + 0x20], 0x41e5
mov dword [ebx + 0x22], 0
and al, byte [eax]
add byte [eax], al
add bh, al
inc ebx
add byte es:[eax], al
add byte [eax], al