Function at 0x41a3d0
Capabilities:
Compute adler32 checksum

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [0x45e4b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x90], ecx
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
push esi
mov ecx, dword [ebx]
mov esi, dword [ebp + 0x10]
add ecx, edx
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x90]
push edi
mov edi, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x98], ebx
mov ecx, dword [ecx]
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x5c], esi
lea edx, [esi + ecx]
mov dword [ebp - 0x8c], edx
mov edx, dword [ebp + 0x18]
and edx, 4
mov dword [ebp - 0x74], edx
mov edx, dword [ebp + 0xc]
je 0x41a43f
or ebx, 0xffffffff
jmp 0x41a44b
mov eax, esi
lea ebx, [ecx - 1]
sub eax, edx
add ebx, eax
mov eax, dword [ebp - 0x48]
lea ecx, [ebx + 1]
mov dword [ebp - 0x78], ebx
test ebx, ecx
jne 0x41bac7
cmp esi, edx
jb 0x41bac7
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 0x38]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x84], ecx
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x60], edx
cmp ecx, 0x35
ja case.default.0x41a494
movzx eax, byte [ecx + 0x41bb80]
jmp dword [eax*4 + 0x41baf8]
mov eax, dword [ebp - 0x48]
xor edx, edx
mov ecx, dword [ebp + 0x18]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x60], edx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [ebp - 0x6c], edx
mov dword [eax + 0x1c], 1
mov dword [eax + 0x10], 1
test cl, 1
je 0x41a7c6
cmp edi, dword [ebp - 0x58]
jae 0x41a50e
mov ecx, dword [ebp - 0x48]
mov eax, edi
inc edi
mov dword [ebp - 0x4c], edi
movzx eax, byte [eax]
mov dword [ecx + 8], eax
jmp 0x41a52c
mov eax, edi
cmp eax, dword [ebp - 0x58]
jae 0x41a508
mov ecx, dword [ebp - 0x48]
inc edi
movzx eax, byte [eax]
mov dword [ebp - 0x4c], edi
mov dword [ecx + 8], eax
jmp 0x41a52c
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x18]
test cl, 2
je 0x41a522
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], ecx
jmp 0x41b8e1
mov ecx, dword [ebp - 0x48]
mov dword [eax + 8], 0
cmp edi, dword [ebp - 0x58]
jae 0x41a553
movzx eax, byte [edi]
inc edi
mov dword [ecx + 0xc], eax
mov dword [ebp - 0x4c], edi
jmp 0x41a579
mov eax, edi
cmp eax, dword [ebp - 0x58]
jae 0x41a553
mov ecx, dword [ebp - 0x48]
inc edi
movzx eax, byte [eax]
mov dword [ebp - 0x4c], edi
mov dword [ecx + 0xc], eax
jmp 0x41a579
test byte [ebp + 0x18], 2
je 0x41a56f
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 2
jmp 0x41b8e1
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 0xc], 0
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
mov eax, ecx
shl eax, 8
add eax, edx
mov dword [ebp - 0x68], edx
xor edx, edx
mov dword [ebp - 0x50], 0x1f
div dword [ebp - 0x50]
test edx, edx
jne 0x41a5a7
test byte [ebp - 0x68], 0x20
jne 0x41a5a7
mov eax, ecx
and al, 0xf
cmp al, 8
je 0x41a5ac
mov edx, 1
cmp dword [ebp - 0x74], 0
mov dword [ebp - 0x60], edx
jne 0x41a5e2
shr ecx, 4
mov eax, 1
add ecx, 8
shl eax, cl
cmp eax, 0x8000
ja 0x41a5d8
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x4c]
inc ecx
cmp ecx, eax
jb 0x41a5d8
xor eax, eax
jmp 0x41a5dd
mov eax, 1
or edx, eax
mov dword [ebp - 0x60], edx
test edx, edx
je 0x41a7c6
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x24
jmp 0x41b8e1
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41a7d0
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41a7e2
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41a82b
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41a83d
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41a873
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41a885
mov eax, edi
cmp eax, dword [ebp - 0x58]
jae 0x41a8ae
mov ecx, dword [ebp - 0x48]
inc edi
mov al, byte [eax]
mov dword [ebp - 0x4c], edi
mov byte [ecx + edx + 0x2920], al
inc edx
jmp 0x41a860
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41a92d
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41a93f
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41aa73
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41aa85
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41ab05
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41ab17
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41ae67
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41ae79
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41af49
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41af5b
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b1c9
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b1db
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b2bf
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b2d1
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b37f
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b391
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b44a
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b45c
mov ecx, dword [ebp - 0x5c]
jmp 0x41b4d2
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x8c]
cmp ecx, eax
jb 0x41a75b
mov eax, dword [ebp - 0x48]
mov ecx, 2
mov dword [ebp - 0x54], ecx
mov dword [eax], 9
jmp 0x41b8e1
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x8c]
cmp edi, dword [ebp - 0x58]
jae 0x41b716
sub eax, ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
sub ecx, edi
cmp dword [ebp - 0x50], ecx
mov eax, ecx
cmovb eax, dword [ebp - 0x50]
cmp eax, edx
jae 0x41a787
cmp dword [ebp - 0x50], ecx
cmovb ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
jmp 0x41a78c
mov ecx, edx
mov dword [ebp - 0x50], edx
push ecx
push edi
push dword [ebp - 0x5c]
call fcn.0042c460
mov eax, dword [ebp - 0x50]
add esp, 0xc
mov ecx, dword [ebp - 0x5c]
add edi, eax
mov edx, dword [ebp - 0x60]
add ecx, eax
sub edx, eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], edx
test edx, edx
jne 0x41a732
mov eax, dword [ebp - 0x48]
test byte [eax + 0x14], 1
jne 0x41b707
cmp esi, 3
jae 0x41a7f3
cmp edi, dword [ebp - 0x58]
jb 0x41a7de
test byte [ebp + 0x18], 2
jne 0x41b5a7
xor eax, eax
jmp 0x41a7e5
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 3
jb 0x41a7cb
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 7
shr ebx, 3
sub esi, 3
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x68], esi
mov dword [ecx + 0x14], eax
mov eax, ecx
mov ecx, dword [eax + 0x14]
shr ecx, 1
mov dword [eax + 0x18], ecx
jne 0x41a97c
mov eax, esi
and eax, 7
cmp esi, eax
jae 0x41a852
cmp edi, dword [ebp - 0x58]
jb 0x41a839
test byte [ebp + 0x18], 2
jne 0x41b5bd
xor eax, eax
jmp 0x41a840
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
mov eax, esi
and eax, 7
cmp esi, eax
jb 0x41a826
mov ecx, esi
and ecx, 7
shr ebx, cl
sub esi, ecx
mov ecx, dword [ebp - 0x48]
xor edx, edx
cmp edx, 4
jae 0x41a8d6
test esi, esi
je 0x41a8a9
cmp esi, 8
jae 0x41a899
cmp edi, dword [ebp - 0x58]
jb 0x41a881
test byte [ebp + 0x18], 2
jne 0x41b5d3
xor eax, eax
jmp 0x41a888
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 8
jb 0x41a86e
mov ecx, dword [ebp - 0x48]
mov byte [ecx + edx + 0x2920], bl
sub esi, 8
shr ebx, 8
inc edx
jmp 0x41a860
cmp edi, dword [ebp - 0x58]
jb 0x41a8c6
test byte [ebp + 0x18], 2
jne 0x41b5e9
mov ecx, dword [ebp - 0x48]
mov byte [ecx + edx + 0x2920], 0
inc edx
jmp 0x41a860
mov al, byte [edi]
inc edi
mov byte [ecx + edx + 0x2920], al
inc edx
mov dword [ebp - 0x4c], edi
jmp 0x41a860
movzx edx, byte [ecx + 0x2921]
movzx eax, byte [ecx + 0x2920]
movzx ecx, byte [ecx + 0x2923]
shl edx, 8
or edx, eax
shl ecx, 8
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], edx
movzx eax, byte [eax + 0x2922]
or ecx, eax
xor ecx, 0xffff
cmp edx, ecx
jne case.0x41a494.39
mov ecx, dword [ebp - 0x5c]
test edx, edx
je 0x41a7b9
test esi, esi
je 0x41a7b1
cmp esi, 8
jae 0x41a950
cmp edi, dword [ebp - 0x58]
jb 0x41a93b
test byte [ebp + 0x18], 2
jne 0x41b5ff
xor eax, eax
jmp 0x41a942
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 8
jb 0x41a928
movzx eax, bl
shr ebx, 8
sub esi, 8
mov dword [ebp - 0x6c], eax
jmp 0x41a961
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebp - 0x8c]
jae 0x41b615
mov byte [ecx], al
inc ecx
dec edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], edx
jmp 0x41a913
cmp ecx, 3
je 0x41b75d
cmp ecx, 1
jne 0x41aa59
movdqa xmm0, xmmword [0x457340]
mov ecx, eax
mov dword [ecx + 0x2c], 0x120
mov dword [ecx + 0x30], 0x20
movdqu xmmword [ecx + 0xde0], xmm0
movdqu xmmword [ecx + 0xdf0], xmm0
movdqa xmm0, xmmword [0x457360]
movdqu xmmword [eax + 0x40], xmm0
movdqu xmmword [eax + 0x50], xmm0
movdqu xmmword [eax + 0x60], xmm0
movdqu xmmword [eax + 0x70], xmm0
movdqu xmmword [eax + 0x80], xmm0
movdqu xmmword [eax + 0x90], xmm0
movdqu xmmword [eax + 0xa0], xmm0
movdqu xmmword [eax + 0xb0], xmm0
movdqu xmmword [eax + 0xc0], xmm0
add eax, 0xd0
movdqa xmm0, xmmword [0x457370]
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x30], xmm0
movdqu xmmword [eax + 0x40], xmm0
movdqu xmmword [eax + 0x50], xmm0
movdqu xmmword [eax + 0x60], xmm0
movdqa xmm0, xmmword [str._a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_b_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t]
movdqu xmmword [eax + 0x70], xmm0
movq qword [eax + 0x80], xmm0
mov dword [eax + 0x88], 0x8080808
mov dword [eax + 0x8c], 0x8080808
mov eax, ecx
jmp 0x41ab5a
xor edx, edx
mov dword [ebp - 0x60], edx
cmp edx, 3
jae 0x41aad9
movsx ecx, byte [edx + 0x456e24]
cmp esi, ecx
jae 0x41aa9f
cmp edi, dword [ebp - 0x58]
jb 0x41aa81
test byte [ebp + 0x18], 2
jne 0x41b62b
xor eax, eax
jmp 0x41aa88
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
movsx ecx, byte [edx + 0x456e24]
or ebx, eax
cmp esi, ecx
jb 0x41aa6e
mov eax, dword [ebp - 0x48]
lea edx, [eax + edx*4]
mov eax, 1
shl eax, cl
dec eax
and eax, ebx
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x60]
movsx ecx, byte [eax + 0x456e24]
mov eax, dword [eax*4 + 0x457020]
sub esi, ecx
add dword [edx + 0x2c], eax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x48]
shr ebx, cl
inc edx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x68], esi
jmp 0x41aa5b
push 0x120
add eax, 0x1b80
push 0
push eax
call fcn.0042ea00
add esp, 0xc
xor edx, edx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], edx
cmp edx, dword [eax + 0x34]
jae 0x41ab53
cmp esi, 3
jae 0x41ab28
cmp edi, dword [ebp - 0x58]
jb 0x41ab13
test byte [ebp + 0x18], 2
jne 0x41b641
xor eax, eax
jmp 0x41ab1a
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 3
jb 0x41ab00
movzx eax, byte [edx + 0x456fc0]
mov ecx, ebx
mov edi, dword [ebp - 0x48]
and ecx, 7
shr ebx, 3
sub esi, 3
mov dword [ebp - 0x88], ebx
inc edx
mov dword [ebp - 0x68], esi
mov byte [eax + edi + 0x1b80], cl
mov edi, dword [ebp - 0x4c]
jmp 0x41aaf0
mov dword [eax + 0x34], 0x13
mov eax, dword [eax + 0x18]
test eax, eax
js 0x41b035
mov ecx, dword [ebp - 0x48]
imul eax, eax, 0xda0
add ecx, 0x40
push 0x40
push 0
add eax, ecx
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x44]
push eax
call fcn.0042ea00
mov eax, dword [ebp - 0x54]
push 0x800
add eax, 0x120
push 0
push eax
call fcn.0042ea00
mov eax, dword [ebp - 0x54]
push 0x480
add eax, 0x920
push 0
push eax
call fcn.0042ea00
mov edx, dword [ebp - 0x48]
add esp, 0x24
xor ecx, ecx
mov eax, dword [edx + 0x18]
mov edx, dword [edx + eax*4 + 0x2c]
mov dword [ebp - 0x80], edx
test edx, edx
je 0x41abd3
mov edi, dword [ebp - 0x54]
movzx eax, byte [ecx + edi]
inc ecx
inc dword [ebp + eax*4 - 0x44]
cmp ecx, edx
jb 0x41abc6
xor edi, edi
mov edx, 8
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x74], ecx
mov edi, edi
mov eax, dword [ebp + edx - 0x48]
add ecx, eax
add ecx, ecx
add edi, eax
mov eax, dword [ebp + edx - 0x44]
add dword [ebp - 0x74], eax
mov dword [ebp + edx - 0xe0], ecx
add ecx, eax
mov eax, dword [ebp + edx - 0x40]
add ecx, ecx
add dword [ebp - 0x50], eax
mov dword [ebp + edx - 0xdc], ecx
add ecx, eax
add ecx, ecx
mov dword [ebp + edx - 0xd8], ecx
add edx, 0xc
cmp edx, 0x40
jbe 0x41abf0
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x74]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x9c], edi
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x4c]
add ecx, eax
cmp dword [ebp - 0x94], 0x10000
je 0x41ac5f
cmp ecx, 1
ja 0x41b76e
cmp dword [ebp - 0x80], 0
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x50], 0
jbe 0x41ad33
mov esi, dword [ebp - 0x94]
mov edi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x54]
movzx ecx, byte [edi + ebx]
xor edx, edx
mov dword [ebp - 0x80], ecx
test ecx, ecx
je 0x41ad13
mov eax, dword [ebp + ecx*4 - 0xe0]
mov ebx, ecx
mov dword [ebp - 0x74], eax
inc eax
mov dword [ebp + ecx*4 - 0xe0], eax
test ecx, ecx
je 0x41acca
nop
mov edi, dword [ebp - 0x74]
add edx, edx
mov ecx, edi
shr edi, 1
and ecx, 1
mov dword [ebp - 0x74], edi
or edx, ecx
dec ebx
jne 0x41acb0
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x50]
cmp ecx, 0xa
ja 0x41ad9f
mov eax, ecx
shl eax, 9
or eax, edi
movzx ebx, ax
cmp edx, 0x400
jae 0x41ad10
mov eax, 1
shl eax, cl
lea ecx, [eax + eax]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx + edx*2]
add ecx, 0x120
mov edi, edi
mov word [ecx], bx
add edx, eax
add ecx, dword [ebp - 0x80]
cmp edx, 0x400
jb 0x41ad00
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x48]
inc edi
mov dword [ebp - 0x50], edi
mov eax, dword [ecx + 0x18]
cmp edi, dword [ecx + eax*4 + 0x2c]
jb 0x41ac86
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0x18], 2
jne 0x41b01e
xor edx, edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x60], edx
add eax, dword [ecx + 0x2c]
cmp edx, eax
jae 0x41afd5
cmp esi, 0xf
jae 0x41aeb6
mov eax, dword [ebp - 0x58]
sub eax, edi
cmp eax, 2
jge 0x41ae93
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0x1ca0]
mov dword [ebp - 0x68], eax
test eax, eax
js 0x41ae1d
sar eax, 9
test eax, eax
je 0x41ae62
cmp esi, eax
jae 0x41aeb6
jmp 0x41ae62
mov ebx, dword [ebp - 0x54]
mov eax, edx
and eax, 0x3ff
lea edi, [ebx + eax*2]
movsx eax, word [edi + 0x120]
mov dword [ebp - 0x74], eax
test eax, eax
jne 0x41adc9
mov eax, esi
mov word [edi + 0x120], si
mov dword [ebp - 0x74], eax
sub esi, 2
shr edx, 9
cmp ecx, 0xb
jbe 0x41ae06
lea edi, [ecx - 0xb]
mov ecx, dword [ebp - 0x74]
shr edx, 1
mov eax, edx
and eax, 1
sub ecx, eax
mov eax, 0x48f
sub eax, ecx
movzx ecx, word [ebx + eax*2]
test cx, cx
jne 0x41adfb
mov word [ebx + eax*2], si
mov ecx, esi
sub esi, 2
jmp 0x41adfe
movsx ecx, cx
dec edi
jne 0x41add7
mov dword [ebp - 0x74], ecx
mov eax, ecx
mov edi, dword [ebp - 0x50]
shr edx, 1
and edx, 1
sub edx, eax
mov word [ebx + edx*2 + 0x91e], di
jmp 0x41ad13
cmp esi, 0xa
jbe 0x41ae62
mov ecx, 0xa
mov dword [ebp - 0x50], ecx
lea ebx, [ebx]
mov edi, dword [ebp - 0x48]
mov eax, ebx
shr eax, cl
mov ecx, dword [ebp - 0x68]
and eax, 1
not ecx
add eax, ecx
movsx ecx, word [edi + eax*2 + 0x24a0]
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x50], eax
test ecx, ecx
jns 0x41aeb3
mov ecx, dword [ebp - 0x50]
inc eax
cmp esi, eax
jae 0x41ae30
cmp edi, dword [ebp - 0x58]
jb 0x41ae75
test byte [ebp + 0x18], 2
jne 0x41b657
xor eax, eax
jmp 0x41ae7c
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
mov ecx, dword [ebp - 0x48]
or ebx, eax
cmp esi, 0xf
jb 0x41ad6d
jmp 0x41aeb6
movzx edx, byte [edi + 1]
lea ecx, [esi + 8]
movzx eax, byte [edi]
add edi, 2
shl edx, cl
mov ecx, esi
shl eax, cl
or edx, eax
mov dword [ebp - 0x4c], edi
or ebx, edx
mov edx, dword [ebp - 0x60]
add esi, 0x10
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0x1ca0]
mov dword [ebp - 0x6c], eax
test eax, eax
js 0x41aedb
mov ecx, eax
sar ecx, 9
and eax, 0x1ff
mov dword [ebp - 0x6c], eax
jmp 0x41af04
mov ecx, 0xa
mov edi, dword [ebp - 0x6c]
mov eax, ebx
shr eax, cl
not edi
and eax, 1
inc ecx
add eax, edi
mov edi, dword [ebp - 0x48]
movsx eax, word [edi + eax*2 + 0x24a0]
mov dword [ebp - 0x6c], eax
test eax, eax
js 0x41aee0
mov edi, dword [ebp - 0x4c]
shr ebx, cl
sub esi, ecx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x68], esi
cmp eax, 0x10
jae 0x41af29
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x6c]
mov byte [eax + edx + 0x2924], cl
inc edx
jmp 0x41ad42
jne 0x41af33
test edx, edx
je case.0x41a494.17
movsx ecx, byte [eax + 0x456e18]
mov dword [ebp - 0x84], ecx
cmp esi, ecx
jae 0x41af71
cmp edi, dword [ebp - 0x58]
jb 0x41af57
test byte [ebp + 0x18], 2
jne 0x41b66d
xor eax, eax
jmp 0x41af5e
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
mov ecx, dword [ebp - 0x84]
or ebx, eax
cmp esi, ecx
jb 0x41af44
mov eax, 1
sub esi, ecx
shl eax, cl
dec eax
mov dword [ebp - 0x68], esi
and eax, ebx
shr ebx, cl
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x88], ebx
movsx eax, byte [eax + 0x456e1c]
add ecx, eax
cmp dword [ebp - 0x6c], 0x10
mov dword [ebp - 0x50], ecx
jne 0x41afb0
mov eax, dword [ebp - 0x48]
movzx eax, byte [eax + edx + 0x2923]
jmp 0x41afb2
xor eax, eax
push ecx
push eax
mov eax, dword [ebp - 0x48]
add eax, 0x2924
add eax, edx
push eax
call fcn.0042ea00
mov edx, dword [ebp - 0x60]
add esp, 0xc
add edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
jmp 0x41ad42
mov eax, ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
add eax, ecx
cmp eax, edx
jne case.0x41a494.21
push ecx
mov ecx, dword [ebp - 0x48]
lea eax, [ecx + 0x2924]
push eax
lea eax, [ecx + 0x40]
push eax
call fcn.0042c460
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x2c]
push dword [ecx + 0x30]
add eax, 0x2924
add eax, ecx
push eax
lea eax, [ecx + 0xde0]
push eax
call fcn.0042c460
mov eax, dword [ebp - 0x48]
add esp, 0x18
dec dword [eax + 0x18]
mov edx, dword [ebp - 0x60]
jmp 0x41ab5a
mov al, byte [ecx + 1]
mov ecx, dword [ebp - 0x5c]
mov byte [ecx + 1], al
add dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x58]
sub ecx, edi
cmp ecx, 4
jl 0x41b149
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x4c]
cmp eax, 2
jl 0x41b149
cmp esi, 0xf
jae 0x41b06f
movzx eax, word [edi]
mov ecx, esi
shl eax, cl
add edi, 2
or ebx, eax
mov dword [ebp - 0x4c], edi
add esi, 0x10
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx edx, word [ecx + eax*2 + 0x160]
test edx, edx
js 0x41b08c
mov ecx, edx
sar ecx, 9
jmp 0x41b0af
mov ecx, 0xa
mov edi, dword [ebp - 0x48]
mov eax, ebx
shr eax, cl
not edx
and eax, 1
inc ecx
add eax, edx
movsx edx, word [edi + eax*2 + 0x960]
test edx, edx
js 0x41b091
mov edi, dword [ebp - 0x4c]
shr ebx, cl
sub esi, ecx
test edx, 0x100
jne 0x41b281
cmp esi, 0xf
jae 0x41b0d6
movzx eax, word [edi]
mov ecx, esi
shl eax, cl
add edi, 2
or ebx, eax
mov dword [ebp - 0x4c], edi
add esi, 0x10
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0x160]
mov dword [ebp - 0x50], eax
test eax, eax
js 0x41b0f6
mov ecx, eax
sar ecx, 9
jmp 0x41b127
mov ecx, 0xa
mov dword [ebp - 0x68], ecx
mov edi, edi
mov eax, ebx
shr eax, cl
mov ecx, dword [ebp - 0x50]
and eax, 1
not ecx
add eax, ecx
mov ecx, dword [ebp - 0x48]
movsx eax, word [ecx + eax*2 + 0x960]
mov ecx, dword [ebp - 0x68]
inc ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x68], ecx
test eax, eax
js 0x41b100
shr ebx, cl
sub esi, ecx
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], dl
test eax, 0x100
jne 0x41b27b
mov byte [ecx + 1], al
add ecx, 2
mov dword [ebp - 0x5c], ecx
jmp 0x41b035
cmp esi, 0xf
jae 0x41b20f
cmp ecx, 2
jge 0x41b1f2
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0x160]
mov dword [ebp - 0x68], eax
test eax, eax
js 0x41b185
sar eax, 9
test eax, eax
je 0x41b1c4
cmp esi, eax
jae 0x41b20f
jmp 0x41b1c4
cmp esi, 0xa
jbe 0x41b1c4
mov ecx, 0xa
mov dword [ebp - 0x50], ecx
mov edi, dword [ebp - 0x48]
mov eax, ebx
shr eax, cl
mov ecx, dword [ebp - 0x68]
and eax, 1
not ecx
add eax, ecx
movsx ecx, word [edi + eax*2 + 0x960]
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x50], eax
test ecx, ecx
jns 0x41b20f
mov ecx, dword [ebp - 0x50]
inc eax
cmp esi, eax
jae 0x41b192
cmp edi, dword [ebp - 0x58]
jb 0x41b1d7
test byte [ebp + 0x18], 2
jne 0x41b683
xor eax, eax
jmp 0x41b1de
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 0xf
jb 0x41b15b
jmp 0x41b20f
movzx edx, byte [edi + 1]
lea ecx, [esi + 8]
movzx eax, byte [edi]
add edi, 2
shl edx, cl
mov ecx, esi
shl eax, cl
or edx, eax
mov dword [ebp - 0x4c], edi
or ebx, edx
add esi, 0x10
mov edx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx edx, word [edx + eax*2 + 0x160]
test edx, edx
js 0x41b232
mov ecx, edx
sar ecx, 9
and edx, 0x1ff
jmp 0x41b255
mov ecx, 0xa
mov edi, dword [ebp - 0x48]
mov eax, ebx
shr eax, cl
not edx
and eax, 1
inc ecx
add eax, edx
movsx edx, word [edi + eax*2 + 0x960]
test edx, edx
js 0x41b237
mov edi, dword [ebp - 0x4c]
shr ebx, cl
sub esi, ecx
cmp edx, 0x100
jae 0x41b281
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x8c]
jae 0x41b699
mov byte [eax], dl
inc eax
mov dword [ebp - 0x5c], eax
jmp 0x41b035
inc ecx
mov edx, eax
mov dword [ebp - 0x5c], ecx
and edx, 0x1ff
mov dword [ebp - 0x60], edx
cmp edx, 0x100
je 0x41a7b9
lea eax, [edx*4 - 0x404]
mov ecx, dword [eax + 0x456e40]
mov edx, dword [eax + 0x457030]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x60], edx
test ecx, ecx
je 0x41b2fa
cmp esi, ecx
jae 0x41b2e7
cmp edi, dword [ebp - 0x58]
jb 0x41b2cd
test byte [ebp + 0x18], 2
jne 0x41b6af
xor eax, eax
jmp 0x41b2d4
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
mov ecx, dword [ebp - 0x84]
or ebx, eax
cmp esi, ecx
jb 0x41b2ba
mov eax, 1
sub esi, ecx
shl eax, cl
dec eax
and eax, ebx
shr ebx, cl
add edx, eax
mov dword [ebp - 0x60], edx
cmp esi, 0xf
jae 0x41b3c8
mov eax, dword [ebp - 0x58]
sub eax, edi
cmp eax, 2
jge 0x41b3a8
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0xf00]
mov dword [ebp - 0x68], eax
test eax, eax
js 0x41b33b
sar eax, 9
test eax, eax
je 0x41b37a
cmp esi, eax
jae 0x41b3cb
jmp 0x41b37a
cmp esi, 0xa
jbe 0x41b37a
mov ecx, 0xa
mov dword [ebp - 0x50], ecx
mov edi, dword [ebp - 0x48]
mov eax, ebx
shr eax, cl
mov ecx, dword [ebp - 0x68]
and eax, 1
not ecx
add eax, ecx
movsx ecx, word [edi + eax*2 + 0x1700]
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x50], eax
test ecx, ecx
jns 0x41b3c8
mov ecx, dword [ebp - 0x50]
inc eax
cmp esi, eax
jae 0x41b348
cmp edi, dword [ebp - 0x58]
jb 0x41b38d
test byte [ebp + 0x18], 2
jne 0x41b6c5
xor eax, eax
jmp 0x41b394
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 0xf
jb 0x41b311
jmp 0x41b3c8
movzx edx, byte [edi + 1]
lea ecx, [esi + 8]
movzx eax, byte [edi]
add edi, 2
shl edx, cl
mov ecx, esi
shl eax, cl
or edx, eax
mov dword [ebp - 0x4c], edi
or ebx, edx
mov edx, dword [ebp - 0x60]
add esi, 0x10
mov ecx, dword [ebp - 0x48]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0xf00]
mov dword [ebp - 0x50], eax
test eax, eax
js 0x41b3ed
mov ecx, eax
sar ecx, 9
and eax, 0x1ff
jmp 0x41b41c
mov edx, dword [ebp - 0x50]
mov ecx, 0xa
mov edi, dword [ebp - 0x48]
mov eax, ebx
not edx
shr eax, cl
inc ecx
and eax, 1
add eax, edx
movsx edx, word [edi + eax*2 + 0x1700]
test edx, edx
js 0x41b3f8
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x50]
shr ebx, cl
sub esi, ecx
mov ecx, dword [eax*4 + 0x456ec0]
mov eax, dword [eax*4 + 0x456f40]
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x6c], eax
test ecx, ecx
je 0x41b48c
cmp esi, ecx
jae 0x41b472
cmp edi, dword [ebp - 0x58]
jb 0x41b458
test byte [ebp + 0x18], 2
jne 0x41b6db
xor eax, eax
jmp 0x41b45f
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x4c], edi
mov ecx, esi
add esi, 8
shl eax, cl
mov ecx, dword [ebp - 0x84]
or ebx, eax
cmp esi, ecx
jb 0x41b445
mov eax, 1
sub esi, ecx
shl eax, cl
dec eax
and eax, ebx
shr ebx, cl
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x88], ebx
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x7c], ecx
cmp eax, ecx
jbe 0x41b4a6
test byte [ebp + 0x18], 4
jne case.0x41a494.37
mov edi, dword [ebp - 0x4c]
sub ecx, eax
and ecx, dword [ebp - 0x78]
add ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x5c], ecx
mov eax, ecx
cmova eax, dword [ebp - 0x5c]
add eax, edx
cmp eax, dword [ebp - 0x8c]
jbe 0x41b4fb
mov ecx, dword [ebp - 0x5c]
mov eax, edx
dec edx
test eax, eax
je 0x41b035
cmp ecx, dword [ebp - 0x8c]
jae 0x41b6f1
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x78]
mov edi, dword [ebp + 0xc]
mov al, byte [eax + edi]
mov edi, dword [ebp - 0x4c]
mov byte [ecx], al
inc ecx
inc dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ecx
jmp 0x41b4c7
cmp edx, 9
jb 0x41b55c
cmp edx, dword [ebp - 0x6c]
ja 0x41b55c
mov ebx, dword [ebp - 0x5c]
mov eax, edx
and eax, 0xfffffff8
add eax, ecx
mov dword [ebp - 0x80], eax
mov edx, eax
mov eax, dword [ecx]
mov dword [ebx], eax
mov eax, dword [ecx + 4]
add ecx, 8
mov dword [ebx + 4], eax
add ebx, 8
cmp ecx, edx
jb 0x41b514
mov edx, dword [ebp - 0x60]
and edx, 7
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x88]
cmp edx, 3
jae 0x41b55c
test edx, edx
je 0x41b035
mov edi, dword [ebp - 0x5c]
mov al, byte [ecx]
mov byte [edi], al
mov edi, dword [ebp - 0x4c]
cmp edx, 1
jbe 0x41b032
jmp 0x41b029
mov edi, dword [ebp - 0x5c]
nop
movzx eax, byte [ecx]
lea ecx, [ecx + 3]
mov byte [edi], al
sub edx, 3
movzx eax, byte [ecx - 2]
mov byte [edi + 1], al
movzx eax, byte [ecx - 1]
mov byte [edi + 2], al
add edi, 3
cmp edx, 2
jg 0x41b560
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x4c]
test edx, edx
jle 0x41b035
mov edi, dword [ebp - 0x5c]
mov al, byte [ecx]
mov byte [edi], al
mov edi, dword [ebp - 0x4c]
cmp edx, 1
jle 0x41b032
jmp 0x41b029
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 3
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 5
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 6
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 7
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x33
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 2
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x34
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0xb
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0xe
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x10
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x12
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x17
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 2
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x18
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x19
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x1a
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x1b
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 2
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x35
jmp 0x41b8e1
test byte [ebp + 0x18], 1
je 0x41b8ce
jmp 0x41b7e1
test byte [ebp + 0x18], 2
je case.0x41a494.40
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x26
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x27
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x28
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [eax], 0xa
mov dword [ebp - 0x54], ecx
jmp 0x41b8e1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x23
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x11
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x15
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x25
jmp 0x41b8e1
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b7d0
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b7d8
test byte [ebp + 0x18], 2
jne 0x41b802
xor eax, eax
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
mov eax, esi
and eax, 7
cmp esi, eax
jae 0x41b7f5
cmp edi, dword [ebp - 0x58]
jae 0x41b7d0
movzx eax, byte [edi]
inc edi
jmp 0x41b7d8
mov ecx, esi
and ecx, 7
shr ebx, cl
sub esi, ecx
xor edx, edx
jmp 0x41b85a
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x20
jmp 0x41b8e1
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b86d
movzx eax, byte [ecx]
lea edi, [ecx + 1]
jmp 0x41b87b
mov ecx, edi
cmp ecx, dword [ebp - 0x58]
jae 0x41b839
movzx eax, byte [ecx]
lea edi, [ecx + 1]
mov dword [ebp - 0x78], eax
jmp 0x41b84a
test byte [ebp + 0x18], 2
jne 0x41b8b8
mov dword [ebp - 0x78], 0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x10]
shl eax, 8
or eax, dword [ebp - 0x78]
inc edx
mov dword [ecx + 0x10], eax
cmp edx, 4
jae case.0x41a494.34
test esi, esi
je 0x41b897
cmp esi, 8
jae 0x41b889
cmp edi, dword [ebp - 0x58]
jb 0x41b877
test byte [ebp + 0x18], 2
jne 0x41b8a5
xor eax, eax
jmp 0x41b87b
movzx eax, byte [edi]
inc edi
mov ecx, esi
add esi, 8
shl eax, cl
or ebx, eax
cmp esi, 8
jb 0x41b868
movzx eax, bl
shr ebx, 8
sub esi, 8
mov dword [ebp - 0x78], eax
jmp 0x41b84a
cmp edi, dword [ebp - 0x58]
jae 0x41b839
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x78], eax
jmp 0x41b84a
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x29
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
mov ecx, 1
mov dword [ebp - 0x54], ecx
mov dword [eax], 0x2a
jmp 0x41b8e1
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov dword [eax], 0x22
mov dword [ebp - 0x54], ecx
jmp case.default.0x41a494
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
sub edi, dword [ebp - 0x64]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x98]
mov dword [eax + 0x38], ebx
mov ebx, dword [ebp - 0x6c]
mov dword [eax + 4], esi
mov dword [eax + 0x20], ebx
mov dword [edx], edi
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x90]
sub edi, dword [ebp - 0x70]
test byte [ebp + 0x18], 9
mov dword [ebp - 0x5c], edi
mov dword [edx], edi
je 0x41bab4
test ecx, ecx
js 0x41bab4
mov esi, dword [eax + 0x1c]
mov ebx, edi
mov eax, 0x5e6ea9af
movzx ecx, si
mul edi
shr esi, 0x10
shr edx, 0xb
imul eax, edx, 0x15b0
mov dword [ebp - 0x7c], esi
sub ebx, eax
mov dword [ebp - 0x90], ebx
test edi, edi
je 0x41ba91
jmp 0x41b960
xor edi, edi
cmp ebx, 7
jbe 0x41b9e1
mov eax, dword [ebp - 0x70]
mov edx, 7
sub edx, eax
movzx eax, byte [eax]
add edi, 8
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 1]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 2]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 3]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 4]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 5]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 6]
add ecx, eax
mov eax, dword [ebp - 0x70]
add esi, ecx
movzx eax, byte [eax + 7]
add ecx, eax
mov eax, dword [ebp - 0x70]
add eax, 8
add esi, ecx
mov dword [ebp - 0x70], eax
add eax, edx
cmp eax, ebx
mov eax, dword [ebp - 0x70]
jb 0x41b975
mov dword [ebp - 0x7c], esi
xor edx, edx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x50], edx
cmp edi, ebx
jae 0x41ba56
mov eax, ebx
sub eax, edi
cmp eax, 2
jb 0x41ba3d
mov esi, dword [ebp - 0x70]
mov edx, ebx
mov ebx, dword [ebp - 0x78]
sub edx, edi
sub edx, 2
shr edx, 1
inc edx
lea edi, [edi + edx*2]
mov dword [ebp - 0x80], edi
mov edi, ebx
mov edi, edi
movzx eax, byte [esi]
add ecx, eax
movzx eax, byte [esi + 1]
add ebx, ecx
add esi, 2
add ecx, eax
add edi, ecx
dec edx
jne 0x41ba10
mov dword [ebp - 0x78], ebx
mov ebx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x70], esi
mov esi, dword [ebp - 0x7c]
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 0x80]
cmp edi, ebx
jae 0x41ba4f
mov edi, dword [ebp - 0x70]
movzx eax, byte [edi]
add ecx, eax
add esi, ecx
inc edi
mov dword [ebp - 0x70], edi
mov eax, dword [ebp - 0x50]
add eax, edx
add esi, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add esi, eax
sub dword [ebp - 0x5c], ebx
mov ebx, 0x15b0
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x90], ebx
jne 0x41b960
mov eax, dword [ebp - 0x48]
shl esi, 0x10
add esi, ecx
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x1c], esi
test ecx, ecx
jne 0x41bab4
test byte [ebp + 0x18], 1
je 0x41bab4
cmp esi, dword [eax + 0x10]
mov edx, 0xfffffffe
cmovne ecx, edx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00428e73
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 4]
pop edi
mov dword [eax], 0
xor ecx, ebp
pop esi
mov dword [edx], 0
mov eax, 0xfffffffd
pop ebx
call fcn.00428e73
mov esp, ebp
pop ebp
ret