Function at 0x4210c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x108
mov esi, esp
push eax
sub esp, 0xc
mov eax, esp
sub esp, 0x18
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x14], eax
push eax
sub esp, 0x18
mov dword [esi + 8], esp
sub esp, 0x28
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
sub esp, 0x14
mov dword [esi + 0x6c], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0xa4], esp
sub esp, 0x1c
mov dword [esi + 0x5c], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x80], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x60], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0xd0], esp
sub esp, 8
mov dword [esi + 0x7c], esp
sub esp, 0x10
mov dword [esi + 0x78], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa0], eax
mov esp, eax
push eax
sub esp, 0x2c
mov dword [esi + 0x20], esp
sub esp, 0x38
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x9c], eax
mov esp, eax
push eax
sub esp, 0x10
mov dword [esi + 0x58], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x4c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x50], eax
mov esp, eax
mov dword [esi + 0x28], 0x63ab654d
mov dword [esi + 0x2c], 0x6ff061f2
mov dword [esi + 0x30], 0x6b836da2
mov dword [esi + 0x34], 0x178769f6
mov dword [esi + 0x38], 0x1314153d
lea eax, [esi + 0x3c]
mov dword [esi + 0x3c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x17
ja 0x42121f
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x28]
mov edi, 0x4e
sub edi, ecx
add ecx, 0x9768f2b1
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0xec], edi
mov ecx, dword [esi + 0xec]
add cl, 0x29
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x18
jb 0x4211e0
lea ebx, [esi + 0xec]
lea edx, [esi + 0x28]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x100]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esi + 0x70]
push edi
push 0
push 0
push 9
push ebx
push 0
call dword [0x441024]
mov ebx, dword [esi + 0x70]
test ebx, ebx
jns 0x421263
mov eax, 0xffffffff
jmp 0x421266
lea eax, [ebx + ebx]
push eax
call fcn.00409090
add esp, 4
push edi
push ebx
mov dword [esi + 0x54], eax
push eax
push 9
lea eax, [esi + 0xec]
push eax
push 0
call dword [0x441024]
mov ebx, dword [esi + 0x64]
mov dword [ebx], 0x2bc32de0
mov dword [ebx + 4], 0xd73929b7
mov dword [ebx + 8], 0xd34cd547
mov dword [ebx + 0xc], 0xdfded13c
lea eax, [ebx + 0x10]
mov dword [ebx + 0x10], 0
mov word [ebx + 0x14], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x15
ja 0x421307
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
mov edi, 0x85
sub edi, ecx
add ecx, 0x386c607a
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x28], edi
mov ecx, dword [esi + 0x28]
add cl, 0xaa
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x16
jb 0x4212d0
mov edx, dword [esi + 0x14]
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 ebx, dword [esi + 0x68]
mov dword [ebx], 0xfb63f982
mov dword [ebx + 4], 0xff99fd6f
mov dword [ebx + 8], 0xf362f16f
mov dword [ebx + 0xc], 0xf7b1f596
mov dword [ebx + 0x10], 0xeb76e995
mov dword [ebx + 0x14], 0xef7eed89
mov dword [ebx + 0x18], 0xe3e0e165
lea eax, [ebx + 0x1c]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x23], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x26
ja 0x4213b7
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
mov edi, 0xa0
sub edi, ecx
add ecx, 0x8b72b05f
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x28], edi
mov ecx, dword [esi + 0x28]
add cl, 0x67
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x27
jb 0x421380
mov edx, dword [esi + 8]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
add edx, 0x1c
xor ecx, ecx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ebx, dword [esi + 0x10]
mov dword [ebx], 0x4beb4502
mov dword [ebx + 4], 0x4fed49df
mov dword [ebx + 8], 0xb3da4ddf
mov dword [ebx + 0xc], 0xb700b116
mov dword [ebx + 0x10], 0xbbf2b502
lea eax, [ebx + 0x14]
mov word [ebx + 0x14], 0xb9ba
mov dword [ebx + 0x16], 0
mov dword [ebx + 0x19], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
ja 0x42145a
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
mov edi, 0xa
sub edi, ecx
add ecx, 0xaa018df5
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x28], edi
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x28]
add cl, 0x4d
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1d
jb 0x421420
mov edx, dword [esi + 0x6c]
mov edi, edx
mov ecx, 5
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x14
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0x14]
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, dword [esi + 0x54]
add eax, 2
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x5c]
add eax, 2
mov dword [esi + 0xdc], eax
mov edx, dword [esi + 0x78]
mov eax, edx
add eax, 2
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x20]
add eax, 2
mov dword [esi + 0xb0], eax
mov ebx, dword [esi + 0x58]
mov eax, ebx
add eax, 2
mov dword [esi + 0xac], eax
xor edi, edi
xor eax, eax
mov dword [esi + 0x84], 0
cmp edi, 0xc
setne al
mov edi, dword [esi + 0x18]
lea ecx, [edi + 0x18]
mov dword [esi + 0xe8], ecx
mov ecx, dword [esi + 0x5c]
lea ecx, [ecx + 0x18]
mov dword [esi + 0xe4], ecx
lea ecx, [edx + 0x10]
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0xa0]
lea ecx, [ecx + 0x10]
mov dword [esi + 0xc4], ecx
mov edx, dword [esi + 0x9c]
lea ecx, [edx + 0x2c]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x20]
lea ecx, [ecx + 0x2c]
mov dword [esi + 0x68], ecx
lea ecx, [ebx + 0x10]
mov dword [esi + 0x64], ecx
lea ecx, [edi + 0x1a]
mov dword [esi + 0xe0], ecx
mov ecx, dword [esi + 0x60]
add ecx, 0x17
mov dword [esi + 0xcc], ecx
lea ecx, [edx + 0x2e]
mov dword [esi + 0xbc], ecx
mov ecx, dword [esi + 0x50]
add ecx, 4
mov dword [esi + 0xb8], ecx
xor edx, edx
mov ecx, dword [esi + 0x4c]
add ecx, 0x10
mov dword [esi + 0xb4], ecx
jmp dword [eax*4 + 0x43dea8]
jmp dword [0x43deb0]
push dword [esi + 0x54]
call fcn.004090a0
add esp, 4
mov eax, dword [esi + 0x84]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x8c]
add edx, 4
xor eax, eax
cmp edx, 0xc
setne al
jmp dword [eax*4 + 0x43dea8]
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x8c], edx
mov ecx, dword [eax + edx]
mov ebx, 0xfffffffe
nop
nop
nop
nop
mov eax, ebx
cmp word [ecx + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x4215c0
mov dword [esi + 0x10], ecx
mov dword [edi], 0xa3d4a1c2
mov dword [edi + 4], 0xdf41dd33
mov dword [edi + 8], 0xdb4cd9bd
mov dword [edi + 0xc], 0xd7b9d5fa
mov dword [edi + 0x10], 0xd3b3d15a
mov dword [edi + 0x14], 0xcf53cd5e
mov word [edi + 0x18], 0xc9ce
mov eax, dword [esi + 0xe0]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1f
ja 0x421655
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 0xc4
sub ecx, eax
add eax, 0xf81f3e3b
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x63
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x20
jb 0x421620
mov edx, ebx
sar edx, 1
mov eax, edi
mov ecx, 6
mov edi, dword [esi + 0x5c]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xe8]
mov ecx, 1
mov edi, dword [esi + 0xe4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x70]
lea ecx, [edx + eax]
add ecx, 0xd
test ecx, ecx
mov dword [esi + 0x14], edx
jns 0x4216a0
mov eax, 0xffffffff
jmp 0x4216a9
add eax, edx
lea eax, [eax*2 + 0x1a]
push eax
call fcn.00409090
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x54]
movzx ecx, word [eax]
mov dword [esi + 0x90], edx
mov eax, edx
test cx, cx
mov edi, dword [esi + 0x18]
je 0x4216f1
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x90]
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 0x4216e0
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esi + 0x10]
movzx ecx, word [edx]
test cx, cx
je 0x421721
add edx, 2
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 0x421710
mov word [eax], 0
mov ecx, dword [esi + 0x5c]
movzx ecx, word [ecx]
test cx, cx
mov dword [esi + 0x94], ebx
je 0x421751
mov edx, dword [esi + 0xdc]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421740
mov word [eax], 0
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0x88]
push ebx
push dword [esi + 0x90]
call fcn.00436250
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43deb8]
xor ebx, ebx
jmp dword [0x43df08]
push dword [esi + 0x90]
call fcn.004090a0
add esp, 4
movzx eax, bl
mov ebx, dword [esi + 0x50]
jmp dword [eax*4 + 0x43df10]
push 0
push dword [esi + 0x80]
push dword [ebx]
call fcn.004365f0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esi + 8], 0
mov edi, ebx
jmp dword [eax*4 + 0x43dec0]
mov eax, dword [esi + 0x80]
mov edi, dword [eax]
lea eax, [edi + 1]
push eax
call fcn.00409090
add esp, 4
mov ebx, eax
push 0
push edi
mov edi, dword [esi + 0x88]
push eax
push dword [edi]
call fcn.004366f0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esi + 8], 0
jmp dword [eax*4 + 0x43dec8]
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
mov byte [ebx + eax], 0
push ebx
call fcn.00401e60
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 8], 0
jmp dword [ecx*4 + 0x43ded0]
jmp dword [0x43def0]
mov dword [esi + 0xd8], eax
push eax
call fcn.00402900
add esp, 4
mov edi, dword [esi + 0x60]
mov dword [edi], 0x7e714c47
mov dword [edi + 4], 0x434c4640
mov dword [edi + 8], 0x764e7688
mov dword [edi + 0xc], 0x5b545e48
mov dword [edi + 0x10], 0x56616d69
mov word [edi + 0x14], 0x566d
mov byte [edi + 0x16], 0xcc
mov ecx, dword [esi + 0xcc]
mov word [ecx], 0
mov byte [ecx + 2], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x19
ja 0x4218dd
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x60]
movzx edi, byte [edi + edx]
mov edx, 0x1c
sub edx, ecx
add ecx, 0x14d5aee3
xor edx, ecx
and edx, edi
mov edi, dword [esi + 0x60]
xor edx, ecx
mov dword [esi + 0x28], edx
mov ecx, dword [esi + 0x28]
add cl, 0xcb
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1a
jb 0x4218a0
push edi
push eax
call fcn.00402cb0
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x421900
shr ecx, 2
mov edi, edx
mov dword [esi + 0x1c], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x421924
cmp edx, 0x2e
jne 0x421925
dec ecx
mov edx, dword [esi + 0x1c]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esi + 0xa8], eax
je 0x42193d
cmp edx, 0x2e
jne 0x42193e
dec ecx
mov dword [esi + 0x74], ebx
mov dword [esi + 0xd4], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409090
add esp, 4
mov dword [esi + 0x44], eax
cmp dword [esi + 0x1c], 0
je 0x421a5a
xor ecx, ecx
mov edi, 2
jmp 0x421983
lea eax, [edi + 4]
add edi, 2
mov ecx, dword [esi + 0x48]
cmp edi, edx
mov edi, eax
jae 0x421a5a
mov dword [esi + 8], ecx
mov ebx, dword [esi + 0xa8]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00416c40
add esp, 4
mov byte [esi + 0x48], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00416c40
add esp, 4
movzx ecx, byte [esi + 0x48]
shl cl, 2
mov byte [esi + 0xf], al
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 8]
mov byte [ecx + edx], al
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 0x48], eax
cmp edi, edx
jae 0x421970
movzx eax, byte [ebx + edi]
push eax
call fcn.00416c40
mov edx, dword [esi + 0x1c]
add esp, 4
cmp al, 0x40
je 0x421970
movzx edx, byte [esi + 0xf]
shl dl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, dl
mov ebx, dword [esi + 8]
lea edx, [ebx + 2]
mov dword [esi + 0x48], edx
mov edx, dword [esi + 0x44]
mov byte [edx + ebx + 1], cl
mov edx, dword [esi + 0x1c]
lea ecx, [edi + 1]
cmp ecx, edx
jae 0x421970
mov ecx, dword [esi + 0xa8]
movzx ecx, byte [ecx + edi + 1]
push ecx
mov byte [esi + 0xf], al
call fcn.00416c40
mov edx, dword [esi + 0x1c]
add esp, 4
movzx ecx, byte [esi + 0xf]
cmp al, 0x40
je 0x421970
shl cl, 6
add al, cl
mov ecx, dword [esi + 0x44]
mov ebx, edx
mov edx, dword [esi + 8]
mov byte [ecx + edx + 2], al
add edx, 3
mov dword [esi + 0x48], edx
mov edx, ebx
jmp 0x421970
mov eax, dword [esi + 0xd4]
add eax, 0xfffffffb
mov edi, dword [esi + 0xd0]
mov dword [edi], eax
mov eax, dword [esi + 0x44]
add eax, 5
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x7c]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x3234ab19
push dword [0x441034]
call fcn.00435820
add esp, 8
push ebx
push 0
push 0
push 0
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43ded8]
mov dword [esi + 8], 0
mov ebx, dword [esi + 0x74]
jmp dword [0x43dee8]
mov edi, dword [esi + 0xa0]
mov dword [edi], 0xcb76cdbf
mov dword [edi + 4], 0xc7b4c978
mov dword [edi + 8], 0xc34ac548
mov dword [edi + 0xc], 0xdfdec14c
mov dword [edi + 0x10], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x13
mov ebx, dword [esi + 0x94]
ja 0x421b35
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 0x9d
sub ecx, eax
add eax, 0x91322d62
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x52
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x14
jb 0x421b00
mov eax, edi
mov edi, dword [esi + 0x78]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xc4]
mov edi, dword [esi + 0xc8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp dword [esi + 0x14], 0xfffffff8
jge 0x421b63
mov eax, 0xffffffff
jmp 0x421b66
lea eax, [ebx + 0x10]
mov ebx, dword [esi + 0x74]
push eax
call fcn.00409090
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x10]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x421ba1
mov eax, dword [esi + 0x10]
lea edx, [eax + 2]
mov eax, edi
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 0x421b90
mov word [eax], 0
mov ecx, dword [esi + 0x78]
movzx ecx, word [ecx]
test cx, cx
je 0x421bd1
mov edx, dword [esi + 0xc0]
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 0x421bc0
mov word [eax], 0
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x7c]
push dword [eax]
push dword [eax + 4]
push edi
call fcn.00409a20
mov dword [esi + 8], eax
jmp dword [0x43dee0]
push edi
call fcn.004090a0
add esp, 4
push 0xaa39f1ac
push dword [0x44101c]
call fcn.00435820
add esp, 8
mov ecx, dword [esi + 0x7c]
push dword [ecx + 4]
call eax
jmp dword [0x43dee8]
push dword [esi + 0x44]
call fcn.004090a0
add esp, 4
push dword [esi + 0xd8]
call fcn.00402ea0
add esp, 4
mov edi, dword [esi + 0x88]
jmp dword [0x43def0]
jmp dword [0x43def8]
push ebx
call fcn.004090a0
add esp, 4
nop
nop
push ebx
call fcn.004090a0
add esp, 4
jmp dword [0x43df04]
mov eax, dword [edi]
mov dword [esi + 0x28], 0x9c9d9e9f
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x24], 0
mov ecx, dword [esi + 0x24]
cmp ecx, 0xb
ja 0x421cc9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x24]
movzx edi, byte [esi + edx + 0x28]
mov edx, 0xc3
sub edx, ecx
add ecx, 0x2dbd7a3c
xor edx, ecx
and edx, edi
xor edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
add cl, 0x5c
mov edx, dword [esi + 0x24]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0x24]
mov ecx, dword [esi + 0x24]
cmp ecx, 0xc
jb 0x421c90
mov ecx, dword [0x441028]
test ecx, ecx
je 0x421d00
mov edx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [0x44102c]
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x421cf0
inc edi
cmp ecx, edi
jne 0x421ce0
jmp 0x421d00
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x42245a
nop
nop
nop
nop
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 8]
jmp dword [0x43df08]
movzx eax, bl
mov ebx, dword [esi + 0x50]
jmp dword [eax*4 + 0x43df10]
jmp dword [0x43df1c]
mov edi, dword [esi + 0x9c]
mov dword [edi], 0x8b5e8d28
mov dword [edi + 4], 0x9739893b
mov dword [edi + 8], 0x93269535
mov dword [edi + 0xc], 0x9f419170
mov dword [edi + 0x10], 0x9b299d20
mov dword [edi + 0x14], 0x67c79926
mov dword [edi + 0x18], 0x63cf65cf
mov dword [edi + 0x1c], 0x6fda61c4
mov dword [edi + 0x20], 0x6bd06dc1
mov dword [edi + 0x24], 0x77c269c5
mov dword [edi + 0x28], 0x73dc75d8
mov word [edi + 0x2c], 0x7170
mov eax, dword [esi + 0xbc]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x32
ja 0x421dd5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 0x15
sub ecx, eax
add eax, 0x9ed78ea
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x9a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x33
jb 0x421da0
mov eax, edi
mov edi, dword [esi + 0x20]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x6c]
mov edi, dword [esi + 0x68]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x14]
lea ecx, [edx + eax]
add ecx, 0x17
test ecx, ecx
jns 0x421e0a
mov eax, 0xffffffff
jmp 0x421e13
add eax, edx
lea eax, [eax*2 + 0x2e]
mov edi, dword [esi + 0x4c]
push eax
call fcn.00409090
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x54]
movzx ecx, word [eax]
mov dword [esi + 8], edx
mov eax, edx
test cx, cx
je 0x421e51
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 8]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421e40
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esi + 0x10]
movzx ecx, word [edx]
test cx, cx
je 0x421e81
add edx, 2
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 0x421e70
mov word [eax], 0
mov ecx, dword [esi + 0x20]
movzx ecx, word [ecx]
test cx, cx
je 0x421eb1
mov edx, dword [esi + 0xb0]
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 0x421ea0
mov word [eax], 0
mov dword [edi], 0x2bbe2dff
mov dword [edi + 4], 0xd74c29c5
mov dword [edi + 8], 0xd346d539
mov dword [edi + 0xc], 0xdf30d13c
mov word [edi + 0x10], 0xdddc
mov dword [edi + 0x16], 0
mov dword [edi + 0x12], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x19
ja 0x421f35
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 5
sub ecx, eax
add eax, 0x557216fa
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x2a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1a
jb 0x421f00
mov eax, edi
mov edi, dword [esi + 0x58]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xb4]
mov edi, dword [esi + 0x64]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp dword [esi + 0x14], 0xfffffff7
jge 0x421f63
mov eax, 0xffffffff
jmp 0x421f6c
mov eax, dword [esi + 0x94]
add eax, 0x12
push eax
call fcn.00409090
add esp, 4
mov ecx, dword [esi + 0x10]
movzx edx, word [ecx]
mov ecx, eax
test dx, dx
je 0x421fa1
mov ecx, dword [esi + 0x10]
lea edi, [ecx + 2]
mov ecx, eax
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x421f90
mov word [ecx], 0
mov edx, dword [esi + 0x58]
movzx edx, word [edx]
test dx, dx
je 0x421fd1
mov edi, dword [esi + 0xac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x421fc0
mov word [ecx], 0
mov dword [ebx], 0xabaaadfa
mov ecx, dword [esi + 0xb8]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 9
ja 0x422037
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [ebx + edx]
mov edx, 0xc5
sub edx, ecx
add ecx, 0x90c6b83a
xor edx, ecx
and edx, edi
xor edx, ecx
mov dword [esi + 0x28], edx
mov ecx, dword [esi + 0x28]
add cl, 0x6a
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xa
jb 0x422000
push 0
push 0
push 0
push 0xc00000
push ebx
push dword [esi + 8]
push eax
push dword [ebp + 8]
call fcn.004193a0
add esp, 0x20
jmp 0x422082
push 0
push 0
push 0
push 0xc00000
push ebx
mov ebx, dword [esi + 8]
push ebx
push edi
push dword [ebp + 8]
call fcn.004193a0
add esp, 0x20
jmp dword [0x43df20]
mov edi, dword [esi + 0x9c]
mov dword [edi], 0x8b5e8d28
mov dword [edi + 4], 0x9739893b
mov dword [edi + 8], 0x93269535
mov dword [edi + 0xc], 0x9f419170
mov dword [edi + 0x10], 0x9b299d20
mov dword [edi + 0x14], 0x67c79926
mov dword [edi + 0x18], 0x63cf65cf
mov dword [edi + 0x1c], 0x6fda61c4
mov dword [edi + 0x20], 0x6bd06dc1
mov dword [edi + 0x24], 0x77c269c5
mov dword [edi + 0x28], 0x73dc75d8
mov word [edi + 0x2c], 0x7170
mov eax, dword [esi + 0xbc]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x32
ja 0x422135
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 0x15
sub ecx, eax
add eax, 0x9ed78ea
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x9a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x33
jb 0x422100
mov eax, edi
mov edi, dword [esi + 0x20]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x6c]
mov edi, dword [esi + 0x68]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x14]
lea ecx, [edx + eax]
inc ecx
add eax, edx
add eax, 0x18
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
jns 0x422180
mov eax, 0xffffffff
jmp 0x422182
add eax, eax
mov edi, dword [esi + 0x4c]
push eax
call fcn.00409090
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x54]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x4221c1
mov edx, dword [esi + 0x98]
mov eax, ebx
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 0x4221b0
mov dword [esi + 8], ebx
mov ecx, dword [esi + 0x10]
lea ebx, [ecx + 2]
mov word [eax], 0x5c
add eax, 2
movzx ecx, word [ecx]
test cx, cx
je 0x4221f1
mov edx, ebx
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4221e0
mov word [eax], 0
mov ecx, dword [esi + 0x20]
movzx ecx, word [ecx]
test cx, cx
je 0x422221
mov edx, dword [esi + 0xb0]
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 0x422210
mov word [eax], 0
mov dword [edi], 0x2bbe2dff
mov dword [edi + 4], 0xd74c29c5
mov dword [edi + 8], 0xd346d539
mov dword [edi + 0xc], 0xdf30d13c
mov word [edi + 0x10], 0xdddc
mov dword [edi + 0x16], 0
mov dword [edi + 0x12], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x19
ja 0x4222a5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
mov ecx, 5
sub ecx, eax
add eax, 0x557216fa
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x2a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1a
jb 0x422270
mov eax, edi
mov edi, dword [esi + 0x58]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xb4]
mov ecx, 1
mov edi, dword [esi + 0x64]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp dword [esi + 0x14], 0xfffffff7
jge 0x4222e0
mov eax, 0xffffffff
jmp 0x4222e9
mov eax, dword [esi + 0x94]
add eax, 0x12
push eax
call fcn.00409090
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x10]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x422321
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422310
mov word [eax], 0
mov ecx, dword [esi + 0x58]
movzx ecx, word [ecx]
test cx, cx
je 0x422360
mov edx, dword [esi + 0xac]
mov ebx, dword [esi + 0x50]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422340
jmp 0x422363
mov ebx, dword [esi + 0x50]
mov word [eax], 0
mov dword [ebx], 0xabaaadfa
mov eax, dword [esi + 0xb8]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x422060
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
mov ecx, 0xc5
sub ecx, eax
add eax, 0x90c6b83a
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x6a
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x4223a0
jmp 0x422060
push eax
push 1
push dword [0x441030]
push ecx
call fcn.00433e50
add esp, 0x10
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 8]
jmp dword [0x43df08]