Function at 0x10224ba0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4550
call fcn.10398c00
mov eax, dword [0x1070dd84]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x4534], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x4530], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x451c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x453c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4544], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x4540], eax
mov eax, dword [ebp + 0x2c]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x4548], eax
mov eax, dword [edx + 0x10b0]
lea esi, [edx + 0xe0]
mov dword [ebp - 0x44e4], ebx
mov dword [ebp - 0x44d4], edx
mov ecx, dword [eax]
mov eax, dword [ebx + 0x3e6f8]
mov ebx, dword [edx + 0x60]
mov dword [ebp - 0x4518], eax
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x44f4], eax
mov eax, dword [edx + 0xa8]
mov edx, dword [esi + 0xffc]
mov dword [ebp - 0x44b8], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x44bc], eax
mov eax, dword [esi + 0x5b8]
mov dword [ebp - 0x44e8], eax
movzx eax, byte [ecx + 0x1058eb08]
mov dword [ebp - 0x450c], esi
mov dword [ebp - 0x44dc], ecx
mov dword [ebp - 0x4528], 0
mov dword [ebp - 0x452c], 0
mov dword [ebp - 0x4508], ebx
movzx edi, byte [ecx + 0x1058eb20]
test edx, edx
js 0x10224c97
mov dword [ebp - 0x44c8], edi
jmp 0x10224ca2
sar edx, 3
add edx, edi
mov dword [ebp - 0x44c8], edx
mov ecx, dword [esi + 0xff4]
test ecx, ecx
js 0x10224cb4
mov dword [ebp - 0x44d0], eax
jmp 0x10224cbf
sar ecx, 3
add ecx, eax
mov dword [ebp - 0x44d0], ecx
mov esi, dword [esi + 0x54c]
xor edx, edx
mov ecx, esi
mov dword [ebp - 0x44ec], 2
sar eax, cl
mov ecx, dword [ebp - 0x450c]
mov ecx, dword [ecx + 0x550]
sar edi, cl
cmp eax, 4
cmovl edx, dword [ebp - 0x44ec]
add eax, edx
mov dword [ebp - 0x4504], eax
xor eax, eax
cmp edi, 4
cmovl eax, dword [ebp - 0x44ec]
add edi, eax
mov dword [ebp - 0x44cc], edi
mov edi, dword [ebp - 0x44c8]
sar edi, cl
mov ecx, esi
mov esi, dword [ebp - 0x44f4]
add edi, eax
mov eax, dword [ebp - 0x44d0]
sar eax, cl
mov ecx, dword [ebp - 0x44b8]
add eax, edx
mov dword [ebp - 0x44c8], edi
mov edi, dword [ebp - 0x4518]
mov dword [ebp - 0x44d0], eax
mov byte [ecx + 6], 0
lea ecx, [ebp - 0x4524]
push ecx
cmp byte [edi + 0x4c], 0
je 0x10224db1
lea ecx, [ebp - 0x4528]
push ecx
lea ecx, [ebp - 0x484]
push ecx
lea ecx, [ebp - 0x4484]
push ecx
push dword [edi + 0x48]
push eax
push dword [ebp - 0x44c8]
push esi
push ebx
call fcn.1028cd20
mov ebx, dword [ebp - 0x44bc]
lea eax, [ebp - 0x4520]
push eax
lea eax, [ebp - 0x452c]
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp - 0x4484]
push eax
push dword [edi + 0x48]
push dword [ebp - 0x44d0]
push dword [ebp - 0x44c8]
push esi
push ebx
call fcn.1028cd20
add esp, 0x48
jmp 0x10224e08
lea ecx, [ebp - 0x484]
push ecx
push eax
push dword [ebp - 0x44c8]
push esi
push ebx
call fcn.1028cc40
mov ebx, dword [ebp - 0x44bc]
lea eax, [ebp - 0x4520]
push eax
lea eax, [ebp - 0x484]
push eax
push dword [ebp - 0x44d0]
push dword [ebp - 0x44c8]
push esi
push ebx
call fcn.1028cc40
mov eax, dword [ebp - 0x4524]
add esp, 0x30
mov dword [ebp - 0x4528], eax
mov eax, dword [ebp - 0x4520]
mov dword [ebp - 0x452c], eax
lea eax, [ebp - 0x44]
push eax
push 1
push dword [ebp - 0x450c]
call fcn.1018b160
mov edx, dword [ebp - 0x452c]
add esp, 0xc
cmp dword [ebp - 0x4528], edx
mov dword [ebp - 0x4514], eax
cmovg edx, dword [ebp - 0x4528]
lea ecx, [edx - 2]
cmp ecx, 0x3e
ja 0x102259e8
mov ecx, dword [ebp - 0x44d4]
mov edx, dword [ebp - 0x4508]
mov eax, dword [ecx + 0x3198]
lea ecx, [ebx + ebx]
add eax, 0x1000
mov dword [ebp - 0x44c0], ecx
cmp byte [edi + 0x4c], 0
mov dword [ebp - 0x44ec], eax
lea eax, [edx + edx]
mov dword [ebp - 0x44d8], eax
je 0x10224e7e
movzx edi, word [eax]
movzx eax, word [ecx]
jmp 0x10224e84
movzx edi, byte [edx]
movzx eax, byte [ebx]
mov ebx, dword [ebp - 0x44c8]
mov ecx, eax
mov dword [ebp - 0x44fc], eax
mov dword [ebp - 0x44f8], edi
mov dword [ebp - 0x4510], edi
mov dword [ebp - 0x4500], ecx
test ebx, ebx
jle 0x10224fc7
mov dword [ebp - 0x4500], eax
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x4510], edi
mov dword [ebp - 0x44c4], eax
mov dword [ebp - 0x44f0], ecx
mov dword [ebp - 0x44b0], ebx
nop
xor edi, edi
cmp dword [ebp - 0x44d0], edi
jle 0x10224f9a
nop
add eax, edi
lea esi, [edi + ecx]
mov ecx, dword [ebp - 0x44ec]
lea ebx, [ecx + eax*4]
mov eax, dword [ebp - 0x4518]
cmp byte [eax + 0x4c], 0
je 0x10224f14
mov eax, dword [ebp - 0x44d8]
movzx ecx, word [eax + esi*2]
mov eax, dword [ebp - 0x44c0]
mov edx, ecx
movzx eax, word [eax + esi*2]
mov esi, eax
jmp 0x10224f26
mov eax, dword [ebp - 0x44bc]
movzx edx, byte [esi + edx]
mov ecx, edx
movzx esi, byte [esi + eax]
mov eax, esi
mov word [ebx], cx
mov word [ebx + 2], ax
cmp edx, dword [ebp - 0x44f8]
jge 0x10224f3d
mov dword [ebp - 0x44f8], edx
jmp 0x10224f4e
mov eax, dword [ebp - 0x4510]
cmp edx, eax
cmovg eax, edx
mov dword [ebp - 0x4510], eax
cmp esi, dword [ebp - 0x44fc]
jge 0x10224f5e
mov dword [ebp - 0x44fc], esi
jmp 0x10224f6f
mov eax, dword [ebp - 0x4500]
cmp esi, eax
cmovg eax, esi
mov dword [ebp - 0x4500], eax
mov eax, dword [ebp - 0x44c4]
inc edi
mov ecx, dword [ebp - 0x44f0]
mov edx, dword [ebp - 0x4508]
cmp edi, dword [ebp - 0x44d0]
jl 0x10224ee0
mov ebx, dword [ebp - 0x44b0]
mov esi, dword [ebp - 0x44f4]
mov edi, dword [ebp - 0x44d0]
add ecx, esi
add eax, edi
mov dword [ebp - 0x44f0], ecx
sub ebx, 1
mov dword [ebp - 0x44c4], eax
mov dword [ebp - 0x44b0], ebx
jne 0x10224ed0
mov ecx, dword [ebp - 0x4500]
jmp 0x10224fcd
mov edi, dword [ebp - 0x44d0]
mov edx, dword [ebp - 0x4520]
mov eax, 8
cmp dword [ebp - 0x4524], edx
mov ebx, 2
mov dword [ebp - 0x44bc], ebx
cmovg edx, dword [ebp - 0x4524]
cmp edx, eax
cmovg edx, eax
mov dword [ebp - 0x454c], edx
cmp edx, ebx
jl 0x102259e8
mov eax, dword [ebp - 0x44c8]
imul eax, edi
mov dword [ebp - 0x4508], 0xfff
mov dword [ebp - 0x4538], 0x3ff
mov dword [ebp - 0x4550], 0xff
mov dword [ebp - 0x44f4], eax
xor edi, edi
test ebx, ebx
jle 0x1022509d
mov esi, dword [ebp - 0x4510]
sub esi, dword [ebp - 0x44f8]
sub ecx, dword [ebp - 0x44fc]
lea eax, [esi + esi]
lea ebx, [ecx + ecx]
mov dword [ebp - 0x44c0], eax
mov eax, esi
add esi, dword [ebp - 0x44c0]
cdq
idiv dword [ebp - 0x44bc]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x44f8]
mov word [ebp + edi*4 - 0x24], ax
mov eax, ecx
cdq
add ecx, ebx
idiv dword [ebp - 0x44bc]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x44fc]
mov word [ebp + edi*4 - 0x22], ax
inc edi
cmp edi, dword [ebp - 0x44bc]
jl 0x10225054
mov ebx, dword [ebp - 0x44bc]
push 0x32
push ebx
push dword [ebp - 0x44f4]
lea eax, [ebp - 0x24]
push dword [ebp - 0x44e8]
push eax
push dword [ebp - 0x44ec]
call fcn.102246d0
add esp, 0x18
cmp dword [ebp - 0x4514], 0
jle 0x102251a4
lea eax, [ebx + ebx]
xor esi, esi
mov dword [ebp - 0x44f0], esi
test eax, eax
jle 0x102251a4
mov eax, dword [ebp - 0x44e4]
movzx edx, word [ebp - 0x44]
mov eax, dword [eax + 0x3e6f8]
mov ecx, dword [eax + 0x48]
mov eax, 4
sub ecx, 8
shl eax, cl
mov dword [ebp - 0x44c0], eax
lea ecx, [ebp - 0x24]
xor ebx, ebx
movsx eax, word [ecx + esi*2]
lea ecx, [ecx + esi*2]
sub eax, edx
mov dword [ebp - 0x44c4], ecx
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov edx, 1
mov dword [ebp - 0x44b0], edx
cmp dword [ebp - 0x4514], edx
jle 0x10225176
nop
movzx ecx, word [ebp + edx*2 - 0x44]
mov esi, edi
mov edx, dword [ebp - 0x44c4]
movsx eax, word [edx]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x44b0]
cmp eax, edi
mov ecx, edx
cmovl edi, eax
cmp eax, esi
cmovge ecx, ebx
inc edx
mov ebx, ecx
mov dword [ebp - 0x44b0], edx
cmp edx, dword [ebp - 0x4514]
jl 0x10225130
mov esi, dword [ebp - 0x44f0]
mov ecx, dword [ebp - 0x44c4]
cmp edi, dword [ebp - 0x44c0]
jg 0x10225186
mov ax, word [ebp + ebx*2 - 0x44]
mov word [ecx], ax
mov ebx, dword [ebp - 0x44bc]
add esi, 2
movzx edx, word [ebp - 0x44]
mov dword [ebp - 0x44f0], esi
lea eax, [ebx + ebx]
cmp esi, eax
jl 0x10225101
lea edx, [ebx + ebx]
xor ecx, ecx
lea eax, [edx - 2]
mov dword [ebp - 0x44c4], ecx
test eax, eax
jle 0x1022526d
nop word [eax + eax]
lea eax, [ecx + ecx]
mov ebx, ecx
mov dword [ebp - 0x44c0], eax
movzx eax, word [ebp + eax - 0x24]
mov esi, eax
movsx edi, ax
lea eax, [ecx + 2]
mov dword [ebp - 0x44d8], esi
mov dword [ebp - 0x44b0], eax
mov esi, eax
cmp eax, edx
jge 0x10225254
nop word [eax + eax]
movsx ecx, word [ebp + esi*2 - 0x24]
mov eax, esi
cmp ecx, edi
mov edx, edi
mov edi, ecx
cmovge eax, ebx
add esi, 2
mov ebx, eax
cmp ecx, edx
mov eax, dword [ebp - 0x44bc]
cmovge edi, edx
lea edx, [eax + eax]
cmp esi, edx
jl 0x102251f0
cmp ebx, dword [ebp - 0x44c4]
je 0x1022524e
mov esi, dword [ebp - 0x44c0]
movzx eax, word [ebp + ebx*2 - 0x24]
movzx ecx, word [ebp + esi - 0x22]
mov word [ebp + esi - 0x24], ax
movzx eax, word [ebp + ebx*2 - 0x22]
mov word [ebp + esi - 0x22], ax
mov eax, dword [ebp - 0x44d8]
mov word [ebp + ebx*2 - 0x24], ax
mov word [ebp + ebx*2 - 0x22], cx
mov eax, dword [ebp - 0x44b0]
mov ecx, eax
lea eax, [edx - 2]
mov dword [ebp - 0x44c4], ecx
cmp ecx, eax
jl 0x102251c0
mov ebx, dword [ebp - 0x44bc]
mov esi, dword [ebp - 0x44e8]
lea eax, [ebp - 0x24]
push ebx
push dword [ebp - 0x44f4]
push 0
push esi
push eax
push dword [ebp - 0x44ec]
call dword [0x10758750]
mov edx, dword [ebp - 0x44d0]
add esp, 0x18
mov ecx, dword [ebp - 0x4504]
mov eax, dword [ebp - 0x44c8]
cmp ecx, edx
jne 0x102252b2
cmp dword [ebp - 0x44cc], eax
je 0x10225388
add eax, 0xffffffff
mov dword [ebp - 0x44c4], eax
mov edi, eax
js 0x10225348
mov eax, ecx
mov ebx, edi
sub eax, edx
imul ebx, edx
mov dword [ebp - 0x44c0], eax
mov eax, ecx
neg eax
mov dword [ebp - 0x44d8], eax
mov eax, edi
imul eax, ecx
add ebx, esi
lea ecx, [eax + esi]
lea esi, [eax + edx]
mov dword [ebp - 0x44b0], ecx
add esi, dword [ebp - 0x44e8]
push edx
push ebx
push ecx
call fcn.10399e60
push dword [ebp - 0x44c0]
movzx eax, byte [esi - 1]
push eax
push esi
call fcn.1039a3e0
mov ecx, dword [ebp - 0x44b0]
add esp, 0x18
mov edx, dword [ebp - 0x44d0]
sub ebx, edx
add ecx, dword [ebp - 0x44d8]
add esi, dword [ebp - 0x44d8]
sub edi, 1
mov dword [ebp - 0x44b0], ecx
jns 0x102252f5
mov eax, dword [ebp - 0x44c4]
mov ecx, dword [ebp - 0x4504]
mov esi, dword [ebp - 0x44e8]
mov edx, dword [ebp - 0x44c8]
mov edi, dword [ebp - 0x44cc]
cmp edx, edi
jge 0x10225388
imul eax, ecx
lea ebx, [eax + esi]
mov esi, ecx
imul esi, edx
add esi, dword [ebp - 0x44e8]
sub edi, edx
nop dword [eax + eax]
push ecx
push ebx
push esi
call fcn.10399e60
mov ecx, dword [ebp - 0x4504]
add esp, 0xc
add esi, ecx
sub edi, 1
jne 0x10225370
mov edx, dword [ebp - 0x44b8]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x44bc]
mov ebx, 0x10
mov dword [ebp - 0x44b0], ebx
mov dword [ebp - 0x44c4], eax
mov byte [edx + 0x87], cl
nop
test ecx, ecx
jle 0x102254b5
mov esi, ebx
mov edx, eax
mov ebx, dword [ebp - 0x4518]
mov edi, ecx
nop dword [eax]
nop dword [eax + eax]
cmp byte [ebx + 0x4c], 0
movzx eax, word [edx]
je 0x10225461
mov ecx, dword [ebx + 0x48]
sub ecx, 8
je 0x1022543c
sub ecx, 2
je 0x10225417
sub ecx, 2
jne 0x1022543c
test ax, ax
jns 0x102253fe
xor eax, eax
movzx eax, ax
jmp 0x10225489
cmp ax, word [ebp - 0x4508]
mov ecx, eax
mov eax, 0xfff
cmovg ecx, eax
movzx eax, cx
movzx eax, ax
jmp 0x10225489
test ax, ax
jns 0x10225423
xor eax, eax
movzx eax, ax
jmp 0x10225489
cmp ax, word [ebp - 0x4538]
mov ecx, eax
mov eax, 0x3ff
cmovg ecx, eax
movzx eax, cx
movzx eax, ax
jmp 0x10225489
test ax, ax
jns 0x10225448
xor eax, eax
movzx eax, ax
jmp 0x10225489
cmp ax, word [ebp - 0x4550]
mov ecx, eax
mov eax, 0xff
cmovg ecx, eax
movzx eax, cx
movzx eax, ax
jmp 0x10225489
mov ecx, 0xff
cmp ax, cx
jle 0x1022546f
or cl, cl
jmp 0x10225486
test ax, ax
movzx ecx, al
mov dword [ebp - 0x44c0], 0
cmovs ecx, dword [ebp - 0x44c0]
movzx eax, cl
mov ecx, dword [ebp - 0x44b8]
add edx, 4
mov word [esi + ecx + 0x56], ax
add esi, 2
sub edi, 1
jne 0x102253d0
mov ebx, dword [ebp - 0x44b0]
mov eax, dword [ebp - 0x44c4]
mov ecx, dword [ebp - 0x44bc]
add ebx, 0x10
add eax, 2
mov dword [ebp - 0x44b0], ebx
mov dword [ebp - 0x44c4], eax
cmp ebx, 0x30
jl 0x102253b0
mov eax, dword [ebp - 0x44e4]
mov esi, dword [ebp - 0x44d4]
cmp dword [eax + 0x64e98], 0
je 0x1022572c
mov ecx, dword [ebp - 0x44b8]
add esi, 0x31e8
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x44d8], esi
mov bl, byte [ecx + 6]
mov dl, byte [ecx + 0x87]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x44e4]
mov byte [ebp - 0x44b1], bl
cmp byte [ecx + 0x3acfb], 0
mov ecx, dword [ebp - 0x44b8]
je 0x1022566a
cmp byte [eax + 0x1058eb08], 0x40
ja 0x1022566a
cmp byte [eax + 0x1058eb20], 0x40
ja 0x1022566a
cmp eax, 3
jl 0x1022566a
test bl, bl
jne 0x1022566a
lea eax, [ecx + 0x56]
xor dh, dh
cmp dh, byte [eax + 0x30]
sbb ecx, ecx
xor al, al
and ecx, 8
add ecx, 0x3c90
cmp al, dl
sbb eax, eax
add ecx, esi
and eax, 4
mov edi, dword [eax + ecx]
add edi, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x44b8]
test dl, dl
je 0x1022566a
mov eax, dword [ebp - 0x44dc]
movzx esi, byte [ecx + 0x87]
movzx ebx, byte [eax + 0x1058eb38]
mov eax, dword [ebp - 0x450c]
sub ebx, 6
mov eax, dword [eax + 0x5b8]
movzx eax, byte [eax]
mov dword [ebp - 0x44c0], eax
test esi, esi
je 0x102255db
bsr ecx, esi
add ecx, 1
je 0x102255db
mov eax, 1
mov edx, ecx
shl eax, cl
sub eax, esi
shl edx, 9
cmp dword [ebp - 0x44c0], eax
jge 0x102255dd
add edx, 0xfffffe00
jmp 0x102255dd
xor edx, edx
mov ecx, dword [ebp - 0x44d4]
lea eax, [ebx*8]
sub eax, ebx
add eax, esi
mov esi, dword [ecx + eax*4 + 0x6444]
lea eax, [ebp - 0x84]
push eax
lea eax, [ecx + 0xe0]
add esi, edx
push 1
push eax
call fcn.1018b160
mov ecx, dword [ebp - 0x44e4]
mov ebx, dword [ebp - 0x44b8]
mov ecx, dword [ecx + 0x3e6f8]
push dword [ecx + 0x48]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebx + 0x56]
push eax
call fcn.102249f0
push 0
add esi, eax
movzx eax, byte [ebx + 0x89]
push eax
push dword [ebp - 0x44dc]
push 1
push dword [ebp - 0x44d4]
call fcn.10276520
mov bl, byte [ebp - 0x44b1]
add eax, esi
mov esi, dword [ebp - 0x44d8]
add esp, 0x30
mov ecx, dword [ebp - 0x44b8]
add edi, eax
movzx edx, bl
mov al, byte [edx + 0x1058ec1c]
dec al
cmp al, 7
ja 0x10225698
cmp dword [ebp - 0x44dc], 3
jl 0x10225698
movsx ecx, byte [ecx + 0x51]
lea eax, [edx*8]
sub eax, edx
add ecx, eax
add edi, dword [esi + ecx*4 + 0x2ca8]
mov eax, dword [ebp - 0x451c]
mov ebx, dword [ebp - 0x44d4]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, edi
imul dword [ebx + 0x31cc]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
sar edx, 9
cmp edx, esi
jg 0x102259e8
jl 0x102256d2
cmp eax, ecx
jae 0x102259e8
push esi
push ecx
push dword [ebp - 0x44dc]
lea eax, [ebp - 0x44ac]
push eax
push ebx
push dword [ebp - 0x44e4]
call fcn.1027fa50
mov ebx, dword [ebp - 0x44ac]
add esp, 0x18
cmp ebx, 0x7fffffff
jne 0x10225915
mov esi, dword [ebp - 0x44cc]
mov ebx, dword [ebp - 0x44bc]
mov ecx, dword [ebp - 0x4500]
inc ebx
mov dword [ebp - 0x44bc], ebx
cmp ebx, dword [ebp - 0x454c]
jle 0x10225030
jmp 0x102259ee
mov edi, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44ac]
push dword [edi + 4]
push dword [edi]
push dword [ebp - 0x44dc]
push ecx
push esi
push eax
call fcn.1027fa50
add esp, 0x18
cmp dword [ebp - 0x44ac], 0x7fffffff
je 0x10225702
mov ecx, dword [ebp - 0x44b8]
add esi, 0x31e8
mov ebx, dword [ebp - 0x44e4]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x44d8], esi
mov dh, byte [ecx + 6]
cmp byte [ebx + 0x3acfb], 0
mov dl, byte [ecx + 0x87]
mov eax, dword [ecx]
mov ebx, dword [ebp - 0x44ac]
mov byte [ebp - 0x44dd], dh
je 0x102258e7
cmp byte [eax + 0x1058eb08], 0x40
ja 0x102258e7
cmp byte [eax + 0x1058eb20], 0x40
ja 0x102258e7
cmp eax, 3
jl 0x102258e7
test dh, dh
jne 0x102258e7
lea eax, [ecx + 0x56]
mov byte [ebp - 0x44b1], dh
mov bl, dh
cmp bl, byte [eax + 0x30]
mov ebx, dword [ebp - 0x44ac]
sbb ecx, ecx
xor al, al
and ecx, 8
add ecx, 0x3c90
cmp al, dl
sbb eax, eax
add ecx, esi
and eax, 4
mov edi, dword [eax + ecx]
add edi, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x44b8]
test dl, dl
je 0x102258e7
mov eax, dword [ebp - 0x44dc]
movzx esi, byte [ecx + 0x87]
movzx ebx, byte [eax + 0x1058eb38]
mov eax, dword [ebp - 0x450c]
sub ebx, 6
mov eax, dword [eax + 0x5b8]
movzx eax, byte [eax]
mov dword [ebp - 0x44c0], eax
test esi, esi
je 0x10225858
bsr ecx, esi
add ecx, 1
je 0x10225858
mov eax, 1
mov edx, ecx
shl eax, cl
sub eax, esi
shl edx, 9
cmp dword [ebp - 0x44c0], eax
jge 0x1022585a
add edx, 0xfffffe00
jmp 0x1022585a
xor edx, edx
mov ecx, dword [ebp - 0x44d4]
lea eax, [ebx*8]
sub eax, ebx
add eax, esi
mov esi, dword [ecx + eax*4 + 0x6444]
lea eax, [ebp - 0x64]
push eax
lea eax, [ecx + 0xe0]
add esi, edx
push 1
push eax
call fcn.1018b160
mov ecx, dword [ebp - 0x44e4]
mov ebx, dword [ebp - 0x44b8]
mov ecx, dword [ecx + 0x3e6f8]
push dword [ecx + 0x48]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebx + 0x56]
push eax
call fcn.102249f0
push 0
add esi, eax
movzx eax, byte [ebx + 0x89]
push eax
push dword [ebp - 0x44dc]
push 1
push dword [ebp - 0x44d4]
call fcn.10276520
mov ebx, dword [ebp - 0x44ac]
add eax, esi
mov dh, byte [ebp - 0x44dd]
add esp, 0x30
mov esi, dword [ebp - 0x44d8]
add edi, eax
mov ecx, dword [ebp - 0x44b8]
movzx edx, dh
mov al, byte [edx + 0x1058ec1c]
dec al
cmp al, 7
ja 0x10225915
cmp dword [ebp - 0x44dc], 3
jl 0x10225915
movsx ecx, byte [ecx + 0x51]
lea eax, [edx*8]
sub eax, edx
add ecx, eax
add edi, dword [esi + ecx*4 + 0x2ca8]
mov ecx, dword [ebp - 0x44d4]
lea eax, [edi + ebx]
mov edi, dword [ebp - 0x451c]
mov dword [ebp - 0x44b0], eax
imul dword [ecx + 0x31cc]
mov ecx, dword [ebp - 0x44a4]
mov esi, eax
mov eax, dword [ebp - 0x44a0]
add esi, 0x100
adc edx, 0
shld eax, ecx, 7
shrd esi, edx, 9
shl ecx, 7
sar edx, 9
add esi, ecx
adc edx, eax
cmp edx, dword [edi + 4]
jg 0x10225702
jl 0x1022596c
cmp esi, dword [edi]
jae 0x10225702
mov eax, dword [ebp - 0x4504]
mov ecx, 0x29
mov dword [edi], esi
mov esi, dword [ebp - 0x44b8]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0x4530]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x44cc]
imul eax, esi
push eax
push dword [ebp - 0x44e8]
push dword [ebp - 0x4534]
call fcn.10399e60
mov ecx, dword [ebp - 0x453c]
add esp, 0xc
mov eax, dword [ebp - 0x44b0]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x4540]
mov eax, dword [ebp - 0x44a4]
mov dword [ecx], eax
mov eax, dword [ebp - 0x44a0]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x4544]
mov ecx, dword [ebp - 0x4548]
mov dword [eax], ebx
mov al, byte [ebp - 0x448c]
mov byte [ecx], al
jmp 0x10225708
mov esi, dword [ebp - 0x44cc]
mov eax, dword [ebp - 0x4530]
cmp byte [eax + 0x87], 0
jbe 0x10225a1b
mov eax, dword [ebp - 0x4504]
imul eax, esi
push eax
push dword [ebp - 0x4534]
push dword [ebp - 0x44e8]
call fcn.10399e60
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10398bef
mov esp, ebp
pop ebp
ret