Function at 0x421800
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0x2b502553
mov dword [esp + 0x64], 0x2f4f2941
mov dword [esp + 0x68], 0x331e2d5d
mov dword [esp + 0x6c], 0x37483159
mov dword [esp + 0x70], 0x3b34355d
mov dword [esp + 0x74], 0
mov word [esp + 0x78], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x19
ja 0x4218b0
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0x583ae25
add eax, 0x583ae25
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0xfd
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x1a
jb 0x421870
lea edi, [esp + 0x60]
lea ecx, [esp + 0x48]
push edi
call fcn.00436ea0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44357c]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00437120
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x443584]
mov dword [esp + 0x60], 0x744b026d
mov dword [esp + 0x64], 0x7674496e
mov dword [esp + 0x68], 0x627d7b59
mov dword [esp + 0x6c], 0x4f787c5d
mov dword [esp + 0x70], 0x6e43584c
mov dword [esp + 0x74], 0x77465c45
mov dword [esp + 0x78], 0x6c715470
mov dword [esp + 0x7c], 0x50576e4b
mov dword [esp + 0x80], 0x687a7c78
mov dword [esp + 0x84], 0x586b9179
mov dword [esp + 0x88], 0xab9c6579
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x93], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x36
ja 0x4219bc
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x41]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe9bf8441
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x39
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x37
jb 0x421980
lea eax, [esp + 8]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push edi
push eax
call fcn.004376f0
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp ebx, ecx
sete al
jmp dword [eax*4 + 0x44358c]
mov eax, ecx
sub eax, ebx
sar eax, 2
imul eax, eax, 0x421
push eax
mov esi, ecx
call fcn.00409080
add esp, 4
mov dword [esp + 0x40], 0
xor ecx, ecx
mov dword [esp + 0x5c], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
jmp dword [ecx*4 + 0x443594]
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.004091a0
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x48]
push eax
push 0x400
push edi
push esi
call fcn.00437560
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x44359c]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x4435a4]
mov eax, 1
jmp dword [eax*4 + 0x4435ac]
xor eax, eax
jmp dword [eax*4 + 0x4435ac]
jmp dword [0x4435bc]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x421a90
mov edx, edi
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421ac0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421ab0
jmp 0x421a90
mov eax, edx
jmp dword [0x4435bc]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4435c4]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor edx, edx
test cl, cl
je 0x421b00
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421b00
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421af0
xor edx, edx
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x4435cc]
mov edi, edx
not edx
and edx, esi
mov ecx, esi
not ecx
mov dword [esp + 0x18], edi
and ecx, edi
sub ecx, edx
lea edx, [ecx + ecx*2]
shr edx, 2
cmp byte [eax + ecx], 0x3d
je 0x421b43
mov eax, ecx
or eax, 0xfffffffe
mov edi, edx
mov edx, ecx
and edx, 0xfffffffe
add edx, eax
cmp byte [esi + edx + 1], 0x2e
mov edx, edi
jne 0x421b44
dec edx
movzx eax, byte [ecx + esi - 2]
cmp eax, 0x3d
je 0x421b53
cmp eax, 0x2e
jne 0x421b54
dec edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edx
lea eax, [edx + 1]
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x18]
sub ecx, esi
je 0x421c71
xor edi, edi
mov esi, 2
mov dword [esp + 0x18], ecx
jmp 0x421ba2
mov edx, dword [esp + 0x44]
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x421c71
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.00418e20
add esp, 4
mov byte [esp + 0x20], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.00418e20
mov ecx, dword [esp + 0x1c]
add esp, 4
mov bh, al
movzx edx, byte [esp + 0x20]
shl dl, 2
shr al, 4
and al, 3
or al, dl
mov edx, dword [esp + 0x1c]
mov byte [edx + edi], al
lea edx, [edi + 1]
cmp esi, ecx
jae 0x421b90
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.00418e20
mov edx, edi
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
je 0x421b90
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x20]
lea edx, [edi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x1c]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x421b89
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00418e20
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x421b90
shl bl, 6
add al, bl
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x421b90
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
mov byte [esi + eax], 0
push esi
call fcn.00401ee0
add esp, 4
mov ebx, eax
jmp dword [0x4435d4]
push esi
call fcn.00409090
add esp, 4
push ebx
call fcn.00402970
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x60]
jmp dword [ecx*4 + 0x4435dc]
jmp 0x421db9
mov dword [esp + 0x28], 0x8be21e13
lea ecx, [esp + 0x2c]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x421d3e
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
mov esi, ecx
and esi, 0x19612a95
xor ecx, 0x19612a95
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xed
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
mov ecx, dword [esp + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb case.default.0x421d53
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00402710
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4435e4]
mov edx, dword [esp + 0x14]
jmp 0x421d89
movzx ecx, byte [eax]
test cl, cl
je 0x421d7d
inc eax
mov edx, dword [esp + 0x14]
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421d70
jmp 0x421d81
mov edx, dword [esp + 0x14]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x421dab
lea ecx, [esp + 0x61]
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 0x421da0
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x14], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402f40
add esp, 4
mov ebx, dword [esp + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421d53.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x5c]
setne al
jmp dword [eax*4 + 0x443594]
mov ebx, dword [esp + 0x40]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44360c]
mov edi, dword [esp + 0x3c]
jmp dword [0x443614]
xor esi, esi
test ebx, ebx
jne 0x421f08
jmp 0x421f15
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x14]
mov byte [ebx], 0
mov edi, dword [esp + 0x3c]
sub ebx, edi
mov dword [esp + 0x60], 0x47404115
mov dword [esp + 0x64], 0x437f7079
mov dword [esp + 0x68], 0x464e4875
mov dword [esp + 0x6c], 0x6858780b
mov dword [esp + 0x70], 0x7f115665
mov dword [esp + 0x74], 0x59635853
mov dword [esp + 0x78], 0x53541f53
mov word [esp + 0x7c], 0xb556
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x23
ja 0x421eda
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
lea esi, [eax + edx]
add eax, 0xa3
and eax, edx
add eax, eax
sub esi, eax
add esi, 0xd97de4a3
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
mov edx, eax
or edx, 0x8a
and eax, 0x8a
add eax, edx
inc al
mov edx, dword [esp]
mov byte [esp + edx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x24
jb 0x421e90
lea eax, [esp + 0x60]
push ebx
push edi
push eax
call fcn.00409ad0
mov ebx, eax
jmp dword [0x443614]
push edi
call fcn.00409090
add esp, 4
and bl, 1
mov esi, ebx
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ebx, ebx
je 0x421f15
cmp ebx, ecx
je 0x421f15
push ebx
call fcn.00409090
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x48]
call fcn.00437260
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x443684]
jmp dword [ecx*4 + 0x44361c]
mov dword [esp + 0x38], 0x43124122
mov dword [esp + 0x3c], 0x5f055d1d
mov dword [esp + 0x40], 0x5b355905
mov dword [esp + 0x44], 0x57065536
mov dword [esp + 0x48], 0x5334513d
mov dword [esp + 0x4c], 0x6f2f6d05
mov dword [esp + 0x50], 0x6b306933
mov dword [esp + 0x54], 0x67326531
mov dword [esp + 0x58], 0x63046139
mov dword [esp + 0x5c], 0x7f2d7d0f
mov dword [esp + 0x60], 0x7b147920
mov dword [esp + 0x64], 0x77377513
mov dword [esp + 0x68], 0x732f7124
mov dword [esp + 0x6c], 0x8fe28d16
mov dword [esp + 0x70], 0x8bfc89ed
mov dword [esp + 0x74], 0x87fb8504
mov dword [esp + 0x78], 0x83ed81e2
mov dword [esp + 0x7c], 0x9fe39d0e
mov dword [esp + 0x80], 0x9bef99fd
mov word [esp + 0x84], 0x959a
lea ecx, [esp + 0x86]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x53
ja 0x4220ac
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x107a2335]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0xef85dcca
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x73
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x54
jb 0x422050
lea ecx, [esp + 8]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043b7f0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443624]
lea edi, [esp + 0x30]
mov eax, esp
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
call fcn.0043bc20
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44362c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42210b
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0x5bec5901
mov dword [esp + 0x3c], 0x57da55e7
mov dword [esp + 0x40], 0x53e651f1
mov dword [esp + 0x44], 0xaffead18
mov dword [esp + 0x48], 0xab26a909
mov dword [esp + 0x4c], 0xa7a6a51c
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xac]
cmp eax, 0x1f
ja 0x4221d7
nop
nop
nop
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx edx, byte [esp + ecx + 0x38]
lea ebx, [eax + 0x1f3602f4]
lea ecx, [eax + edx]
add ecx, 0x1f3602f4
and ebx, edx
add eax, 0xf4
and eax, edx
add eax, ebx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
add al, 0x54
mov ecx, dword [esp + 0xac]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
cmp eax, 0x20
jb 0x422170
push edi
push esi
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x18]
call fcn.0043c360
add esp, 0x14
shr eax, 0x1f
mov ebx, esi
jmp dword [eax*4 + 0x443634]
xor ebx, ebx
jmp dword [0x44363c]
push esi
call fcn.00409090
add esp, 4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov dword [esp + 0x38], 0xa8a9aeaf
lea ecx, [esp + 0x86]
mov word [ecx - 0x42], 0
mov dword [ecx - 0x46], 0
mov dword [ecx - 0x4a], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0xd
ja 0x4222aa
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx esi, byte [esp + edx + 0x38]
lea edx, [ecx + 0x58f5373a]
mov edi, edx
xor edi, esi
and edx, esi
add ecx, 0x3a
and ecx, esi
add ecx, edx
sub edi, ecx
lea ecx, [edi + edx*2]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x6a
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0xe
jb 0x422250
mov ecx, dword [0x447460]
test ecx, ecx
je case.default.0x42230c
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447464]
cmp dword [edi + esi*8], 0x11081610
je 0x4222e4
inc esi
cmp ecx, esi
jne 0x4222c0
jmp case.default.0x42230c
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443674]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.default.0x42230c
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
nop
nop
xor eax, eax
test ebx, ebx
setne al
mov esi, 2
jmp dword [eax*4 + 0x443644]
lea eax, [esp + 0x38]
push eax
call fcn.0043ad40
add esp, 4
mov ecx, dword [case.0x42230c.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x44365c]
xor edx, edx
cmp dword [esp + 0x38], 1
sete dl
jmp dword [edx*4 + 0x443664]
mov esi, ecx
jmp dword [eax*4 + 0x44366c]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443674]
xor eax, eax
jmp dword [eax*4 + 0x44366c]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x443674]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x44367c]
mov eax, dword [case.0x42230c.20]
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test ebx, ebx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44369c]
mov dword [esp + 0x38], 0x7b1d790a
mov dword [esp + 0x3c], 0x7f027d0b
mov dword [esp + 0x40], 0x730b7118
mov dword [esp + 0x44], 0x7718750b
mov dword [esp + 0x48], 0x8bf98913
mov dword [esp + 0x4c], 0x8fea8df4
mov dword [esp + 0x50], 0x83f981f5
mov dword [esp + 0x54], 0x87f285bc
mov dword [esp + 0x58], 0x9bfe99e2
lea eax, [esp + 0x5c]
mov word [esp + 0x5c], 0x9d9a
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x2b
ja 0x42248d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x38]
mov esi, ecx
and esi, 0xc37d55ef
xor ecx, 0x437d55ef
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0x77
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x2c
jb 0x422440
lea edi, [esp + 0xac]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4224c0
cmp eax, 0xffffffd9
jge 0x4224d7
mov eax, 0xffffffff
jmp 0x4224da
add eax, 0x26
push eax
call fcn.00409080
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x422511
lea edx, [ebx + 2]
mov eax, esi
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 0x422500
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x422541
lea edx, [esp + 0xae]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422530
mov word [eax], 0
jmp dword [0x4436a4]
push ebx
call fcn.00409090
add esp, 4
mov eax, esp
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043af50
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4436ac]
xor edi, edi
xor ebx, ebx
jmp dword [0x4436ec]
push esi
call fcn.00409090
add esp, 4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x4436f4]
xor eax, eax
xor ecx, ecx
jmp dword [0x443814]
lea eax, [esp + 0x30]
push 0
push eax
push dword [esp + 8]
call fcn.0043b2f0
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x94], esi
jmp dword [eax*4 + 0x4436b4]
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
push eax
call fcn.00409080
add esp, 4
push 0
push esi
mov dword [esp + 0x98], eax
push eax
push dword [esp + 0xc]
call fcn.0043b400
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4436bc]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x90]
mov byte [edi + esi], 0
push 0x20
call fcn.00409080
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 + 0x2c], eax
mov ecx, eax
push esi
push edi
call fcn.00424b00
movzx eax, al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4436c4]
mov dword [esp + 0x38], 0x67185e3b
mov dword [esp + 0x3c], 0x1260106b
mov dword [esp + 0x40], 0x171b0f27
mov dword [esp + 0x44], 0x82d1c62
mov dword [esp + 0x48], 0xe031868
mov dword [esp + 0x4c], 0x12033
mov dword [esp + 0x50], 0x7f787077
mov word [esp + 0x54], 0xe97f
mov dword [esp + 0x56], 0
mov byte [esp + 0x5a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x22
ja 0x422705
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x9e]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x590f4c9e
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
add al, 0xae
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x23
jb 0x4226c0
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x38]
push eax
call fcn.00424d20
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x4436cc]
jmp dword [0x4436dc]
mov esi, dword [esp + 0x2c]
mov ecx, esi
call fcn.00424ea0
push esi
call fcn.00409090
add esp, 4
jmp dword [0x4436e4]
jmp dword [0x4436e4]
push dword [esp + 0x90]
call fcn.00409090
add esp, 4
mov dword [esp + 0x24], edi
mov eax, dword [esp]
mov dword [esp + 0x38], 0xa8a9aeaf
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov word [esp + 0x44], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xd
ja 0x4227db
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0x38]
lea edx, [ecx + 0x58f5373a]
mov edi, edx
xor edi, esi
and edx, esi
add ecx, 0x3a
and ecx, esi
add ecx, edx
sub edi, ecx
lea ecx, [edi + edx*2]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x6a
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xe
jb 0x422790
mov ecx, dword [0x447460]
test ecx, ecx
je 0x42281c
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422810
inc esi
cmp ecx, esi
jne 0x422800
jmp 0x42281c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4231b0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x94]
jmp dword [0x4436ec]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x4436f4]
mov eax, ebx
mov dword [esp + 0x24], edi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], 0x3340356d
mov dword [esp + 0x3c], 0x2fad31a3
mov dword [esp + 0x40], 0x2bb82db1
mov dword [esp + 0x44], 0x27b82955
mov dword [esp + 0x48], 0x235825b6
mov dword [esp + 0x4c], 0x5fac21bd
mov dword [esp + 0x50], 0x5b075dc1
mov dword [esp + 0x54], 0x5735593e
mov dword [esp + 0x58], 0x53cf55da
mov dword [esp + 0x5c], 0x4fc351cd
mov dword [esp + 0x60], 0x4bd84d2a
mov dword [esp + 0x64], 0x47d549db
mov dword [esp + 0x68], 0x43d045d9
mov dword [esp + 0x6c], 0x7fca4110
mov dword [esp + 0x70], 0x7be67de2
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0x797a
mov dword [esp + 0x76], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x41
ja 0x422948
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x7e501ca9]
add ecx, 0xa9
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0x61
mov edx, dword [esp]
mov byte [esp + edx + 0x38], 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, 0x42
jb 0x422900
lea esi, [esp + 0xd4]
lea edx, [esp + 0x38]
mov edi, esi
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x30]
push eax
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x44745c]
mov edi, dword [esp + 0x30]
test edi, edi
jns 0x422994
mov eax, 0xffffffff
jmp 0x422997
lea eax, [edi + edi]
push eax
call fcn.00409080
add esp, 4
mov esi, eax
lea eax, [esp + 0x30]
push eax
push edi
push esi
push 0x1e
lea eax, [esp + 0xe4]
push eax
push 0
call dword [0x44745c]
lea eax, [esp + 0xa0]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xac], esi
push esi
call fcn.0043af50
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4436fc]
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
jmp dword [0x4437ec]
push dword [esp + 0x9c]
mov esi, edx
call fcn.00409090
add esp, 4
mov edx, esi
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x24]
mov eax, esi
jmp dword [ecx*4 + 0x4437f4]
lea eax, [esp + 0xa8]
push 0
push eax
push dword [esp + 0xa8]
call fcn.0043b2f0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x443704]
mov esi, dword [esp + 0xa8]
lea eax, [esi + 1]
push eax
call fcn.00409080
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xac]
call fcn.0043b400
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x44370c]
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0xa8]
mov byte [edi + esi], 0
push 0x20
call fcn.00409080
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 + 0xa4], eax
mov ecx, eax
push esi
push edi
call fcn.00424b00
movzx eax, al
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x443714]
mov dword [esp + 0x38], 0x37c03ed3
mov dword [esp + 0x3c], 0xba48c833
mov dword [esp + 0x40], 0x47b3af87
mov dword [esp + 0x44], 0xa08dbc4a
mov dword [esp + 0x48], 0x4ebbb040
mov dword [esp + 0x4c], 0x5555968b
mov dword [esp + 0x50], 0x5fada856
mov dword [esp + 0x54], 0xa7a1a08f
mov word [esp + 0x58], 0xcda1
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2d
ja 0x422bb6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x1373a]
add eax, 0x3a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x6a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2e
jb 0x422b80
mov ecx, dword [esp + 0xa4]
lea eax, [esp + 0x38]
push eax
call fcn.00424d20
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
jmp dword [ecx*4 + 0x44371c]
add eax, 8
mov dword [esp + 0x14], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, edx
mov dword [esp + 0x2c], edi
jmp dword [eax*4 + 0x443724]
jmp dword [0x4437d4]
mov ebx, dword [esp + 0x28]
jmp dword [0x4437dc]
mov esi, dword [esp + 0xa4]
mov ecx, esi
call fcn.00424ea0
push esi
call fcn.00409090
add esp, 4
jmp dword [0x4437e4]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443724]
mov ebx, dword [ecx]
cmp dword [ecx + 0x18], 3
mov edx, 0
jne case.default.0x422c6a
mov edx, dword [ecx + 0x10]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44372c]
mov eax, dword [case.0x422bde.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x443744]
mov dword [esp + 0x34], ecx
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x422cd7
mov esi, edx
sub ecx, edx
inc ecx
shr ecx, 1
mov dword [esp + 0x90], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409080
add esp, 4
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x98], eax
mov edi, eax
mov eax, esi
jmp dword [edx*4 + 0x44374c]
inc esi
mov byte [edi], cl
inc edi
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov eax, esi
jmp dword [edx*4 + 0x44374c]
mov edx, ecx
or edx, 0x20
lea esi, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x422d0c
mov ecx, 0xffffffff
cmp esi, 6
jae case.default.0x422d23
add edx, 0xffffffa9
mov ecx, edx
movsx edx, byte [eax + 1]
mov esi, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x443754]
mov dword [esp + 0x20], edi
mov eax, esi
mov esi, edx
or esi, 0x20
lea edi, [esi - 0x61]
mov dword [esp + 0x18], edi
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x422d49
mov edx, 0xffffffff
shl ecx, 4
add eax, 2
cmp dword [esp + 0x18], 6
jae case.default.0x422d6e
add esi, 0xffffffa9
mov edx, esi
mov edi, dword [esp + 0x20]
or edx, ecx
mov byte [edi], dl
inc edi
movsx ecx, byte [eax]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x44374c]
mov byte [edi], 0
mov eax, dword [case.0x422d6e.6]
nop
nop
nop
jmp eax
jmp 0x422d91
inc ebx
movzx eax, byte [ebx]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422d90
cmp ecx, 0x20
je 0x422d90
cmp al, 0x2b
sete cl
cmp al, 0x2d
setne dl
sete al
or al, cl
movzx eax, al
lea esi, [ebx + eax]
or dl, cl
mov byte [esp + 0x94], dl
cmp byte [ebx + eax], 0x30
jne 0x422dd8
movzx eax, byte [esi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea esi, [esi + ecx*2]
mov dword [esp + 0x18], esi
xor ecx, ecx
xor eax, eax
xor edi, edi
jmp 0x422df4
mov ecx, edi
mov edi, esi
mov esi, edi
mov ebx, eax
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x18]
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x422e28
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x422e9c
or al, 0x20
cmp al, 0x66
jg 0x422e9c
movsx edx, al
add edx, 0xffffffa9
inc edi
mov dword [esp + 0x18], edi
mov ecx, ebx
and ecx, esi
mov eax, 0xffffffff
mov edi, 0xffffffff
cmp ecx, 0xffffffff
mov ecx, 0x22
je 0x422df4
mov ecx, esi
shld esi, ebx, 4
shr ecx, 0x1c
shl ebx, 4
mov eax, ecx
neg eax
mov edi, 0
sbb edi, edi
or esi, edi
or edi, ebx
mov eax, esi
mov esi, edx
sar esi, 0x1f
add edi, edx
adc esi, eax
mov edx, 0xffffffff
mov eax, 0xffffffff
jb 0x422e7b
mov edx, esi
mov eax, edi
mov esi, edx
mov edi, 0x22
mov edx, 0x22
jb 0x422e8d
mov edx, dword [esp + 0x20]
test ecx, ecx
jne 0x422df0
mov edi, edx
jmp 0x422df0
xor eax, eax
mov ecx, ebx
neg ecx
sbb eax, esi
cmp byte [esp + 0x94], 0
jne 0x422eb2
mov ebx, ecx
mov esi, eax
mov dword [esp + 0x18], ebx
mov ebx, esi
mov eax, dword [case.0x422bde.22]
nop
nop
nop
jmp eax
xor edi, edi
xor eax, eax
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x44377c]
cmp dword [esp + 0x20], 0x22
setne al
mov ecx, dword [esi + 4]
mov edx, ecx
shr edx, 0x1c
xor edx, ebx
shl ecx, 4
or ecx, 1
xor ecx, dword [esp + 0x18]
or ecx, edx
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x443784]
mov eax, 1
jmp 0x422f24
mov edi, dword [esi]
xor eax, eax
mov ecx, dword [case.0x422bde.30]
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x44379c]
add esi, 8
xor eax, eax
cmp esi, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x44377c]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4437a4]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
jmp dword [0x4437b4]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422fe2
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x932a8d34
push dword [0x44746c]
call fcn.0043a440
add esp, 8
lea ecx, [esp + 8]
mov edx, esp
push edx
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x50]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437ac]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
jmp dword [0x4437b4]
movzx eax, byte [edi]
test al, al
je 0x42301d
inc edi
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x423010
jmp 0x423021
mov ecx, dword [esp + 0x1c]
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov esi, dword [esp]
test esi, esi
je 0x42305a
mov ecx, dword [esp + 4]
mov edx, esi
and edx, 3
je 0x423062
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42303f
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x423064
mov esi, eax
mov edi, dword [esp + 0x2c]
jmp 0x4230a8
mov edx, esi
cmp esi, 4
mov esi, edi
mov edi, dword [esp + 0x2c]
jb 0x4230a8
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
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x42306f
mov byte [esi], 0xa
inc esi
mov dword [esp + 0x1c], esi
push 0x2e0ec9bb
push dword [0x447454]
call fcn.0043a440
add esp, 8
push dword [esp + 4]
call eax
mov al, 1
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x34]
jmp dword [0x4437b4]
push dword [esp + 0x98]
call fcn.00409090
mov ecx, dword [esp + 0x38]
add esp, 4
nop
nop
nop
nop
jmp dword [0x4437c4]
jmp dword [0x4437e4]
push edi
call fcn.00409090
add esp, 4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], 0xa8a9aeaf
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov word [esp + 0x44], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x423180
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x38]
lea edx, [ecx + 0x58f5373a]
mov edi, edx
xor edi, esi
and edx, esi
add ecx, 0x3a
and ecx, esi
add ecx, edx
sub edi, ecx
lea ecx, [edi + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x6a
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x423140
mov ecx, dword [0x447460]
test ecx, ecx
je 0x4231df
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4231d3
inc esi
cmp ecx, esi
jne 0x4231a0
jmp 0x4231df
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x94]
jmp dword [0x4436ec]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4232f3
mov edx, dword [esp + 0x14]
jmp dword [0x4437ec]
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x24]
mov eax, edx
jmp dword [ecx*4 + 0x4437f4]
mov esi, dword [esp + 0x1c]
mov byte [esi], 0
sub esi, dword [esp + 0x10]
mov dword [esp + 0x38], 0xcfc2c1f1
mov dword [esp + 0x3c], 0xc3d7d6cd
mov dword [esp + 0x40], 0xb8b4b6b1
mov dword [esp + 0x44], 0xaaba9ef3
mov dword [esp + 0x48], 0x97fdbca1
mov dword [esp + 0x4c], 0xb9a3bebb
mov dword [esp + 0x50], 0x53aee7ab
mov word [esp + 0x54], 0xdda8
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x27
ja 0x4232a6
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x65db2f38]
add eax, 0x38
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x78
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x28
jb 0x423270
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x40]
push eax
call fcn.00409ad0
mov ecx, dword [case.0x42230c.108]
nop
nop
jmp ecx
jmp dword [0x44380c]
push dword [esp + 0x10]
mov esi, eax
call fcn.00409090
mov eax, esi
add esp, 4
and al, 1
mov ecx, eax
jmp dword [0x443814]
and al, 1
mov ecx, eax
jmp dword [0x443814]
mov eax, ecx
jmp 0x4235c9
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
mov edx, dword [esp + 0x14]
jmp dword [0x4437ec]
add eax, 8
xor ebx, ebx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edi, edi
xor esi, esi
mov dword [esp + 0x14], 0
jmp dword [eax*4 + 0x4436d4]
xor eax, eax
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [edi + edx*8 + 4], eax
add ebx, 8
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov esi, edi
jmp dword [eax*4 + 0x4436d4]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov edx, ebx
sub edx, esi
sar edx, 3
cmp ebx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
je 0x423384
mov dword [esp + 0x28], ebx
mov edi, esi
jmp 0x423403
lea eax, [edx + 1]
mov edi, edx
shr edi, 1
add edi, edx
cmp edi, eax
ja 0x423393
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00409080
add esp, 4
mov ebx, eax
test esi, esi
je 0x4233ef
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x4233e6
xor eax, eax
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, dword [esp + 0x14]
jne 0x4233c0
mov eax, esi
push eax
call fcn.00409090
add esp, 4
mov edx, dword [esp + 0x10]
lea eax, [ebx + edx*8]
mov dword [esp + 0x28], eax
lea eax, [ebx + edi*8]
mov dword [esp + 0x14], eax
mov edi, ebx
mov dword [edi + edx*8], 0
mov dword [edi + edx*8 + 4], 0
xor ebx, ebx
mov eax, 2
xor ecx, ecx
mov edx, dword [esp + 0x20]
nop
mov esi, eax
add ebx, 2
cmp byte [edx + ecx], 0
lea ecx, [ecx + 1]
lea eax, [eax + 2]
jne 0x423420
push ecx
mov dword [esp + 0x1c], ecx
call fcn.00409080
add esp, 4
mov edx, eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x10]
mov dword [edi + eax*8], edx
mov ecx, dword [esp + 0x18]
shr ecx, 2
mov eax, dword [esp + 0x20]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esp + 0x18]
and eax, 0xfffffffc
add edx, eax
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
and ecx, 3
mov dword [esp + 0x98], ecx
shr ecx, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x9c], edx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x18]
test al, 1
je 0x4234bc
and eax, 2
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x18]
dec ecx
or ecx, 0xfffffffe
add ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov byte [edx + ecx + 1], al
mov eax, dword [esp + 0x18]
xor eax, 0xfffffffe
mov edx, eax
lea ecx, [eax + 1]
and ebx, 0xfffffffc
mov eax, ecx
add eax, ebx
je 0x423330
and ecx, 1
mov eax, edx
add ebx, edx
jne 0x4234e1
mov eax, 0xffffffff
jmp 0x423542
sub edx, ecx
and esi, 0xfffffffc
add edx, esi
inc edx
mov eax, 0xffffffff
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
shr esi, 8
movzx edi, byte [ebx]
xor edi, eax
not eax
or eax, 0xff
add eax, edi
xor esi, dword [eax*4 + 0x43e7d4]
mov eax, esi
shr eax, 8
movzx edi, byte [ebx + 1]
add ebx, 2
xor edi, esi
not esi
or esi, 0xff
add esi, edi
xor eax, dword [esi*4 + 0x43e7d4]
add edx, 0xfffffffe
jne 0x423500
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x423576
mov ecx, eax
shr ecx, 8
mov edx, dword [esp + 0x20]
movzx edx, byte [edx]
xor edx, eax
not eax
or eax, 0xff
add eax, edx
mov edx, dword [esp + 0x10]
xor ecx, dword [eax*4 + 0x43e7d4]
mov eax, ecx
not eax
mov ecx, dword [esp + 0x1c]
jmp 0x423342
test edi, edi
je 0x4235c9
cmp edi, ebx
je 0x4235c9
mov dword [esp + 0x14], eax
mov esi, edi
jmp 0x4235a4
cmp esi, ebx
je 0x4235b8
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4235a0
push eax
call fcn.00409090
add esp, 4
jmp 0x4235a0
push edi
call fcn.00409090
add esp, 4
xor ebx, ebx
xor edi, edi
mov eax, dword [esp + 0x14]
test edi, edi
je 0x423609
cmp edi, ebx
je 0x423609
mov dword [esp + 0x14], eax
mov esi, edi
jmp 0x4235e4
cmp esi, ebx
je 0x4235f8
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4235e0
push eax
call fcn.00409090
add esp, 4
jmp 0x4235e0
push edi
call fcn.00409090
add esp, 4
xor ebx, ebx
xor edi, edi
mov eax, dword [esp + 0x14]
jmp dword [0x443820]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov dword [esi + 0x5c], esp
sub esp, 0x14
mov edx, esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov ecx, esp
push eax
mov ebx, esp
sub esp, 0x10
mov edi, esp
jmp dword [esi + 0x14]
mov dword [esi + 0x80], eax
mov dword [esi + 0xc], edx
mov dword [esi + 8], edi
mov dword [esi + 0x38], ebx
mov dword [esi + 0x58], ecx
sub esp, 0x18
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
sub esp, 0x18
mov dword [esi + 4], esp
mov ebx, ecx
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x60], ecx
mov esp, ecx
push eax
sub esp, 0x14
mov dword [esi + 0x10], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x14], ecx
mov esp, ecx
push eax
sub esp, 8
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x74], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x2c], esp
sub esp, 0x1c
mov dword [esi + 0x8c], esp
sub esp, 0x28
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x88], ecx
mov esp, ecx
push eax
mov dword [esi + 0x98], esp
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x78], esp
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x94], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x64], ecx
mov esp, ecx
push eax
mov dword [esi + 0x90], esp
sub esp, 8
mov dword [esi + 0xc0], esp
sub esp, 8
mov dword [esi + 0x44], esp
sub esp, 0x10
mov dword [esi + 0x68], esp
sub esp, 0x18
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x6c], ecx
mov esp, ecx
push eax
mov dword [esi + 0x4c], esp
sub esp, 0x30
mov dword [esi + 0x54], esp
sub esp, 0x38
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xb0], ecx
mov esp, ecx
push eax
mov dword [esi + 0xb8], esp
sub esp, 0x14
mov dword [esi + 0x50], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x70], ecx
mov esp, ecx
push eax
mov dword [esi + 0xb4], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xac], ecx
mov esp, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x5c]
mov dword [eax], ecx
mov eax, dword [esi + 0x80]
mov dword [eax], 0x935391b9
mov dword [eax + 4], 0x9f0c9d02
mov dword [eax + 8], 0x9b7b9952
mov dword [eax + 0xc], 0x87678506
mov dword [eax + 0x10], 0x838081a9
lea ecx, [eax + 0x14]
mov dword [esi + 0x7c], ecx
mov dword [eax + 0x14], 0
mov word [eax + 0x18], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x19
ja 0x42380e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edi, dword [esi]
movzx edi, byte [eax + edi]
lea edx, [ecx - 0xef414bd]
add ecx, 0x43
and ecx, edi
or edx, edi
sub edx, ecx
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
add cl, 0x2b
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x1a
jb 0x4237e0
mov edx, dword [esi + 0xc]
mov edi, edx
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, edx
add edi, 0x14
xor ecx, ecx
mov eax, dword [esi + 0x7c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x58]
push edi
push 0
push 0
push 9
push edx
push 0
call dword [0x44745c]
mov edi, dword [edi]
test edi, edi
jns 0x42384b
mov eax, 0xffffffff
jmp 0x42384e
lea eax, [edi + edi]
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
push dword [esi + 0x58]
push edi
push eax
push 9
push dword [esi + 0xc]
push 0
call dword [0x44745c]
mov edi, ebx
mov dword [ebx], 0x9b039964
mov dword [ebx + 4], 0x97759507
mov dword [ebx + 8], 0x93009107
mov dword [ebx + 0xc], 0x8f8e8d10
lea eax, [ebx + 0x10]
mov dword [ebx + 0x10], 0
mov byte [ebx + 0x14], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x14
ja 0x4238e6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
lea edi, [ecx + edx]
add edi, 0x5ef137c4
add ecx, 0x5ef137c4
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x18], edi
mov edi, ebx
mov ecx, dword [esi + 0x18]
add cl, 0xa4
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x15
jb 0x4238b0
mov edx, dword [esi + 8]
mov ebx, edi
mov edi, edx
mov ecx, 4
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
add edx, 0x10
mov edi, edx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x60]
mov dword [edi], 0x6bf36dd0
mov dword [edi + 4], 0x67f969e7
mov dword [edi + 8], 0x63ec65f7
mov dword [edi + 0xc], 0x5fe161fc
mov dword [edi + 0x10], 0x5bc85dfd
mov dword [edi + 0x14], 0x57d859f9
mov dword [edi + 0x18], 0x535255dd
mov dword [edi + 0x1c], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x1f
ja 0x42398c
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xf569b0d2
add eax, 0xd2
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add al, 0x42
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x20
jb 0x423950
lea eax, [edi + 0x1c]
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x38]
mov eax, edi
mov edx, dword [esi + 4]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x1c
mov edi, edx
xor ecx, ecx
mov eax, dword [esi + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x14]
mov dword [edi], 0x3bb015a
mov dword [edi + 4], 0x1fa11d8f
mov dword [edi + 8], 0x1baa19af
mov dword [edi + 0xc], 0x174415a6
mov dword [edi + 0x10], 0x135211ba
lea eax, [edi + 0x14]
mov dword [esi + 0xc], eax
mov word [edi + 0x14], 0x6d12
mov dword [edi + 0x16], 0
mov dword [edi + 0x1a], 0
mov byte [edi + 0x1e], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x1e
ja 0x423a44
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
lea edi, [ecx + 0x28d07aab]
add ecx, 0xab
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
add cl, 0x53
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x1f
jb 0x423a10
mov ecx, 5
mov edx, dword [esi + 0x10]
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, edx
add edi, 0x14
mov ecx, 1
mov eax, dword [esi + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x48]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov eax, dword [esi + 0x74]
mov byte [eax], 0
mov ecx, dword [esi + 0x84]
mov dword [ecx], edi
add edi, 0xc
mov eax, dword [esi + 0xbc]
mov dword [eax], edi
mov eax, dword [esi + 0x8c]
mov edx, eax
add edx, 2
mov dword [esi + 0xe8], edx
mov edx, dword [esi + 0x68]
add edx, 2
mov dword [esi + 0x9c], edx
mov edx, dword [esi + 0x54]
add edx, 2
mov dword [esi + 0xc8], edx
mov edi, dword [esi + 0x50]
add edi, 2
mov dword [esi + 0xc4], edi
mov edi, dword [esi + 0x88]
lea edx, [edi + 0x18]
mov dword [esi + 0x80], edx
lea edx, [edi + 0x1a]
mov dword [esi + 0x7c], edx
add eax, 0x18
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x64]
lea eax, [eax + 0x17]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x6c]
lea eax, [eax + 0x10]
mov dword [esi + 0xa4], eax
mov eax, dword [esi + 0x68]
lea eax, [eax + 0x10]
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0xb0]
lea edx, [eax + 0x2c]
mov dword [esi + 0xe4], edx
lea eax, [eax + 0x2e]
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0x54]
lea eax, [eax + 0x2c]
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0x70]
lea edx, [eax + 0x10]
mov dword [esi + 0xd8], edx
add eax, 0x12
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0x50]
add eax, 0x10
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xac]
add eax, 4
mov dword [esi + 0xcc], eax
jmp 0x423b69
mov ecx, dword [esi + 0x84]
add dword [ecx], 4
mov eax, dword [case.0x42230c.127]
nop
nop
jmp eax
mov eax, dword [ecx]
xor ecx, ecx
mov edx, dword [esi + 0xbc]
cmp eax, dword [edx]
setne cl
jmp dword [ecx*4 + 0x443844]
mov eax, dword [eax]
mov ecx, dword [esi + 0x30]
mov dword [ecx], eax
mov ecx, dword [esi + 0x40]
mov byte [ecx], 0
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x423ba0
sar ecx, 1
mov eax, dword [esi + 0x2c]
mov dword [eax], ecx
mov dword [edi], 0x9b6e997c
mov dword [edi + 4], 0x97759503
mov dword [edi + 8], 0x93069171
mov dword [edi + 0xc], 0x8f7d8dac
mov dword [edi + 0x10], 0x8b6b8904
mov dword [edi + 0x14], 0x871b8508
mov word [edi + 0x18], 0x8180
mov eax, dword [esi + 0x7c]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x24
ja 0x423c4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x348b0c3c]
add eax, 0xc4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
mov ecx, eax
xor ecx, 0xa3
and eax, 0x23
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x25
jb 0x423c10
mov eax, edi
mov edi, dword [esi + 0x8c]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x80]
mov edi, dword [esi + 0xec]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2c]
mov ecx, dword [ecx]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0xd
lea eax, [edx + edx]
add eax, 0x1a
test ecx, ecx
jns 0x423c95
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0x98]
mov dword [ecx], eax
mov ecx, dword [ebx]
movzx edx, word [ecx]
test dx, dx
mov edi, dword [esi + 0x3c]
je 0x423cd1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x423cc0
mov word [eax], 0x5c
add eax, 2
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x423d01
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x423cf0
mov word [eax], 0
mov ecx, dword [esi + 0x8c]
movzx ecx, word [ecx]
test cx, cx
je 0x423d31
mov edx, dword [esi + 0xe8]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423d20
mov word [eax], 0
push 0x60
push 3
push 0x120089
push edi
mov eax, dword [esi + 0x98]
push dword [eax]
call fcn.0043af50
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44384c]
push 0
push dword [esi + 0x78]
mov edi, dword [esi + 0x3c]
push dword [edi]
call fcn.0043b2f0
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443854]
mov eax, dword [esi + 0x78]
mov ebx, dword [eax]
lea eax, [ebx + 1]
push eax
call fcn.00409080
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xa8]
mov dword [eax], edi
push 0
push ebx
push edi
mov eax, dword [esi + 0x3c]
push dword [eax]
call fcn.0043b400
add esp, 0x10
mov ecx, dword [case.0x42230c.137]
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44386c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4438b4]
push edi
call fcn.00409090
add esp, 4
jmp case.0x42230c.157
mov eax, dword [esi + 0x78]
mov eax, dword [eax]
mov byte [edi + eax], 0
push edi
call fcn.00401ee0
add esp, 4
mov ecx, dword [esi + 0x94]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443874]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4438b4]
mov ebx, dword [esi + 0x64]
jmp dword [0x44387c]
push eax
call fcn.00402970
add esp, 4
mov dword [ebx], 0x909d828f
mov dword [ebx + 4], 0x8386bc86
mov dword [ebx + 8], 0xa8b4acf6
mov dword [ebx + 0xc], 0xbbbe84be
mov dword [ebx + 0x10], 0xb8ada5a5
mov word [ebx + 0x14], 0x8ca1
mov byte [ebx + 0x16], 6
mov ecx, dword [esi + 0x60]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x1f
ja 0x423ea3
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edi, byte [ebx + edx]
mov edx, 0xb245fba7
sub edx, ecx
add ecx, 0x58
and ecx, edi
or edx, edi
not edx
add edx, edi
sub edx, ecx
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
add cl, 0x98
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x20
jb 0x423e70
push ebx
push eax
call fcn.00402d50
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x423ec0
shr edx, 2
cmp byte [eax + ecx - 1], 0x3d
mov dword [esi + 4], ecx
je 0x423ef1
mov edi, ecx
or edi, 0xfffffffe
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
add ecx, edi
cmp byte [eax + ecx + 1], 0x2e
mov ecx, dword [esi + 4]
jne 0x423ef2
dec edx
movzx ecx, byte [eax + ecx - 2]
cmp ecx, 0x3d
mov dword [esi + 0xc], eax
je 0x423f04
cmp ecx, 0x2e
jne 0x423f05
dec edx
mov dword [esi + 0x48], edx
lea eax, [edx + 1]
push eax
call fcn.00409080
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], ecx
mov dword [eax], ecx
cmp dword [esi + 4], 0
je 0x42401d
xor edx, edx
mov edi, 2
jmp 0x423f50
mov edx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42401d
mov dword [esi + 0x14], edx
mov ebx, dword [esi + 0xc]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418e20
add esp, 4
mov byte [esi + 8], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418e20
mov ecx, dword [esi + 4]
add esp, 4
movzx edx, byte [esi + 8]
shl dl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, dl
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov byte [edx + ebx], ah
lea edx, [ebx + 1]
cmp edi, ecx
jae 0x423f40
mov byte [esi + 8], al
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.00418e20
mov edx, ebx
mov ecx, dword [esi + 4]
add esp, 4
cmp al, 0x40
je 0x423f40
movzx edx, byte [esi + 8]
shl dl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, dl
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 2]
mov dword [esi + 8], edx
mov edx, dword [esi + 0x10]
mov byte [edx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, ecx
jae 0x423f34
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418e20
mov ecx, dword [esi + 4]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 8]
je 0x423f40
shl bl, 6
add al, bl
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x423f40
mov eax, dword [esi + 0x48]
add eax, 0xfffffffb
mov edi, dword [esi + 0xc0]
mov dword [edi], eax
mov eax, dword [esi + 0x10]
add eax, 5
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x44]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x44746c]
call fcn.0043a440
add esp, 8
push ebx
push 0
push 0
push 0
push 0
push 0
push edi
call eax
mov ebx, dword [esi + 0x64]
jmp case.0x42230c.142
mov eax, dword [esi + 0x48]
add eax, 0xfffffffb
mov edi, dword [esi + 0xc0]
mov dword [edi], eax
mov eax, dword [esi + 0x10]
add eax, 5
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x44]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x44746c]
call fcn.0043a440
add esp, 8
push ebx
push 0
push 0
push 0
push 0
push 0
push edi
call eax
mov ebx, dword [esi + 0x64]
jmp dword [0x443888]
mov eax, dword [esi + 0x94]
push dword [eax]
call fcn.00402970
add esp, 4
mov dword [ebx], 0x909d828f
mov dword [ebx + 4], 0x8386bc86
mov dword [ebx + 8], 0xa8b4acf6
mov dword [ebx + 0xc], 0xbbbe84be
mov dword [ebx + 0x10], 0xb8ada5a5
mov word [ebx + 0x14], 0x8ca1
mov byte [ebx + 0x16], 6
mov ecx, dword [esi + 0x60]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x1f
ja 0x424153
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edi, byte [ebx + edx]
mov edx, 0xb245fba7
sub edx, ecx
add ecx, 0x58
and ecx, edi
or edx, edi
not edx
add edx, edi
sub edx, ecx
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
add cl, 0x98
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x20
jb 0x424120
push ebx
push eax
call fcn.00402d50
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x424170
shr edx, 2
cmp byte [eax + ecx - 1], 0x3d
mov dword [esi + 4], ecx
je 0x4241a1
mov edi, ecx
or edi, 0xfffffffe
mov ecx, dword [esi + 4]
and ecx, 0xfffffffe
add ecx, edi
cmp byte [eax + ecx + 1], 0x2e
mov ecx, dword [esi + 4]
jne 0x4241a2
dec edx
movzx ecx, byte [eax + ecx - 2]
cmp ecx, 0x3d
mov dword [esi + 0xc], eax
je 0x4241b4
cmp ecx, 0x2e
jne 0x4241b5
dec edx
mov dword [esi + 0x48], edx
lea eax, [edx + 1]
push eax
call fcn.00409080
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], ecx
mov dword [eax], ecx
cmp dword [esi + 4], 0
je 0x424070
xor edx, edx
mov edi, 2
jmp 0x424200
mov edx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x424070
mov dword [esi + 0x14], edx
mov ebx, dword [esi + 0xc]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418e20
add esp, 4
mov byte [esi + 8], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418e20
mov ecx, dword [esi + 4]
add esp, 4
movzx edx, byte [esi + 8]
shl dl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, dl
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov byte [edx + ebx], ah
lea edx, [ebx + 1]
cmp edi, ecx
jae 0x4241f0
mov byte [esi + 8], al
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.00418e20
mov edx, ebx
mov ecx, dword [esi + 4]
add esp, 4
cmp al, 0x40
je 0x4241f0
movzx edx, byte [esi + 8]
shl dl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, dl
mov ebx, dword [esi + 0x14]
lea edx, [ebx + 2]
mov dword [esi + 8], edx
mov edx, dword [esi + 0x10]
mov byte [edx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4241e4
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418e20
mov ecx, dword [esi + 4]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 8]
je 0x4241f0
shl bl, 6
add al, bl
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x4241f0
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44388c]
xor eax, eax
mov ecx, dword [esi + 0x10]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4438ac]
mov ebx, dword [esi + 0x68]
jmp dword [0x443894]
mov edi, dword [esi + 0x6c]
mov dword [edi], 0xab00a557
mov dword [edi + 4], 0xaf5aa91a
mov dword [edi + 8], 0xb314ad1a
mov dword [edi + 0xc], 0xb7b0b106
mov word [edi + 0x10], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
ja 0x424362
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xa40c2245
add eax, 0xa40c2245
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x1d
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x424330
mov eax, edi
mov ecx, 4
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xa4]
mov edi, dword [esi + 0xa0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, eax
add ecx, 8
lea eax, [eax + eax + 0x10]
jns 0x424397
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0x4c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
mov edi, dword [esi + 0x5c]
je 0x4243d1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4243c0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x424401
mov edx, dword [esi + 0x9c]
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 0x4243f0
mov word [eax], 0
mov ecx, dword [edi]
mov eax, dword [esi + 0x44]
push dword [eax]
push dword [eax + 4]
mov eax, dword [esi + 0x4c]
push dword [eax]
call fcn.00409920
mov ecx, dword [esi + 0x40]
mov byte [ecx], al
mov edi, dword [esi + 0x6c]
mov dword [edi], 0xab00a557
mov dword [edi + 4], 0xaf5aa91a
mov dword [edi + 8], 0xb314ad1a
mov dword [edi + 0xc], 0xb7b0b106
mov word [edi + 0x10], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
ja 0x424482
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xa40c2245
add eax, 0xa40c2245
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x1d
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x424450
mov eax, edi
mov edi, ebx
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xa4]
mov edi, dword [esi + 0xa0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, eax
add ecx, 8
lea eax, [eax + eax + 0x10]
jns 0x4244b7
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0x4c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
mov edi, dword [esi + 0x5c]
je 0x4244f1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4244e0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x424521
mov edx, dword [esi + 0x9c]
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 0x424510
mov word [eax], 0
mov ecx, dword [edi]
mov eax, dword [esi + 0x4c]
mov edi, dword [eax]
mov eax, dword [esi + 0x44]
push dword [eax]
push dword [eax + 4]
push edi
call fcn.00409920
mov ecx, dword [esi + 0x40]
mov byte [ecx], al
jmp dword [0x4438a0]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4438a4]
push edi
call fcn.00409090
add esp, 4
push 0x2e0ec9bb
push dword [0x447454]
call fcn.0043a440
add esp, 8
mov ecx, dword [esi + 0x44]
push dword [ecx + 4]
call eax
mov eax, dword [esi + 0x90]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4438ac]
push ecx
call fcn.00409090
add esp, 4
mov eax, dword [esi + 0x94]
push dword [eax]
call fcn.00402f40
add esp, 4
mov eax, dword [esi + 0xa8]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4438b4]
mov edi, dword [esi + 0x3c]
mov eax, dword [edi]
mov dword [esi + 0x18], 0xa8a9aeaf
lea ecx, [esi + 0x1c]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 0x34], 0
mov ecx, dword [esi + 0x34]
cmp ecx, 0xd
ja 0x42462c
nop
nop
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x34]
movzx ebx, byte [esi + edx + 0x18]
lea edx, [ecx + 0x58f5373a]
mov edi, edx
xor edi, ebx
and edx, ebx
add ecx, 0x3a
and ecx, ebx
add ecx, edx
sub edi, ecx
lea ecx, [edi + edx*2]
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0x6a
mov edx, dword [esi + 0x34]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0x34]
mov ecx, dword [esi + 0x34]
cmp ecx, 0xe
jb 0x4245f0
mov ecx, dword [0x447460]
test ecx, ecx
je case.0x42230c.130
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x424660
inc edi
cmp ecx, edi
jne 0x424650
jmp case.0x42230c.130
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x42230c.130
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x42230c.161]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x98]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x88]
jmp dword [ecx*4 + 0x4438cc]
push eax
call fcn.00409090
add esp, 4
mov eax, dword [esi + 0x40]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x4438d4]
mov eax, dword [esi + 0x40]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x4438d4]
mov edi, dword [esi + 0xb0]
mov dword [edi], 0xfb04f92a
mov dword [edi + 4], 0xff19fd6b
mov dword [edi + 8], 0xf36cf11d
mov dword [edi + 0xc], 0xf701f5d2
mov dword [edi + 0x10], 0xeb79e962
mov dword [edi + 0x14], 0xef0fed78
mov dword [edi + 0x18], 0xe307e177
mov dword [edi + 0x1c], 0xe778e50e
mov dword [edi + 0x20], 0x9b0e9901
mov dword [edi + 0x24], 0x9f009d7d
mov dword [edi + 0x28], 0x9372917a
mov word [edi + 0x2c], 0x9592
mov eax, dword [esi + 0xe0]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x32
ja 0x424791
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x9f]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x3a44549f
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add al, 0xa7
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x33
jb 0x424760
mov eax, edi
mov ecx, 0xb
mov edi, dword [esi + 0x54]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xe4]
mov edi, dword [esi + 0xdc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2c]
mov ecx, dword [ecx]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0x17
lea eax, [edx + edx]
add eax, 0x2e
test ecx, ecx
jns 0x4247d6
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0xb8]
mov dword [ecx], eax
mov ecx, dword [ebx]
movzx edx, word [ecx]
test dx, dx
je 0x424813
add ecx, 2
mov ebx, dword [esi + 0x70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424800
jmp 0x424816
mov ebx, dword [esi + 0x70]
mov word [eax], 0x5c
add eax, 2
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424841
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424830
mov word [eax], 0
mov ecx, dword [esi + 0x54]
movzx ecx, word [ecx]
test cx, cx
je 0x424871
mov edx, dword [esi + 0xc8]
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 0x424860
mov word [eax], 0
mov dword [ebx], 0xa31ead5f
mov dword [ebx + 4], 0xa72ca105
mov dword [ebx + 8], 0xbb06a501
mov dword [ebx + 0xc], 0xbf18b91c
mov word [ebx + 0x10], 0xbdbc
mov eax, dword [esi + 0xd4]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x1c
ja 0x424901
nop
nop
mov edx, dword [esi]
mov eax, dword [esi]
movzx edi, byte [ebx + eax]
mov eax, 0x39
sub eax, edx
sub eax, edi
lea ecx, [edx + 0xc6]
add edx, edi
add edx, 0x7d21bc6
and ecx, edi
add ecx, ecx
and eax, ecx
not ecx
and ecx, edx
sub ecx, eax
mov dword [esi + 0x18], ecx
mov eax, dword [esi + 0x18]
add al, 0x96
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x1d
jb 0x4248c0
mov eax, ebx
mov edi, dword [esi + 0x50]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xd8]
mov edi, dword [esi + 0xd0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, eax
add ecx, 9
lea eax, [eax + eax + 0x12]
jns 0x42493a
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
mov ebx, dword [esi + 0xac]
je 0x424981
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424970
mov word [eax], 0
mov ecx, dword [esi + 0x50]
movzx ecx, word [ecx]
test cx, cx
je 0x4249b1
mov edx, dword [esi + 0xc4]
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 0x4249a0
mov word [eax], 0
mov dword [ebx], 0x1310113c
mov eax, dword [esi + 0xcc]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x424a30
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
lea ecx, [eax + 0x52e13e83]
lea edx, [eax + 0x83]
mov edi, edx
and edi, ecx
xor edx, ecx
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
and edi, ecx
and edx, ecx
add eax, ecx
add eax, 0x52e13e83
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add al, 0x6b
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x4249f0
mov eax, dword [esi + 0xb8]
mov edi, dword [eax]
mov eax, dword [esi + 0xb4]
mov ecx, ebx
mov ebx, dword [eax]
push 0
push 0
push 0
push 0xc00000
push ecx
push edi
push ebx
mov eax, dword [esi + 0x5c]
push dword [eax]
call fcn.0041b3e0
add esp, 0x20
mov ecx, dword [esi + 0x74]
or byte [ecx], al
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4438dc]
push ebx
call fcn.00409090
add esp, 4
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x38]
jmp dword [eax*4 + 0x4438e4]
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x38]
jmp dword [eax*4 + 0x4438e4]
jmp dword [0x4438ec]
push edi
call fcn.00409090
add esp, 4
push edi
call fcn.00409090
add esp, 4
jmp dword [0x4438f4]
mov ecx, dword [esi + 0x84]
mov edi, dword [esi + 0x88]
add dword [ecx], 4
jmp 0x423b69
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4438fc]
push eax
call fcn.00409090
add esp, 4
mov eax, dword [esi + 0x74]
movzx eax, byte [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret