Function at 0x56e5a0
Capabilities:
Encode data using base64
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
mov esi, dword [edi]
mov edx, esi
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 4]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], ebx
test ecx, 0x7f000000
jne case.0x56e5f8.1
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x56e65b
lea eax, [edx - 1]
cmp eax, 0x3e
ja case.0x56e5f8.3
movzx eax, byte [eax + 0x570a4c]
jmp dword [eax*4 + 0x570a40]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x1c], 0
je case.0x56e5f8.1
shl edx, 0xa
and esi, 0xfffe03ff
or esi, edx
mov dword [edi], esi
mov eax, dword [eax + 0x1c]
push edi
call eax
mov ecx, dword [edi + 0x14]
add esp, 4
test eax, eax
je case.0x56e5f8.1
and ecx, 0x87ffffff
mov dword [edi + 4], ebx
or ecx, 0x7000000
mov dword [edi + 0x14], ecx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x8bffffff
mov eax, 1
or ecx, 0xb000000
mov dword [edi + 0x14], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
cmp edx, 0x2d
mov dword [ebp + 8], 0
mov ebx, ecx
cmovne ebx, dword [ebp + 8]
cmp edx, 0x32
mov dword [ebp - 0x28], ebx
mov ebx, ecx
mov dword [ebp + 8], 0
cmovne ebx, dword [ebp + 8]
mov dword [ebp - 0x18], ebx
cmp edx, 0x10
je 0x56e698
cmp edx, 0x14
jbe 0x56e69b
cmp edx, 0x1f
ja 0x56e69b
mov dword [ebp - 0x24], ecx
jmp 0x56e69b
mov dword [ebp - 0x20], ecx
add eax, ecx
mov ebx, ecx
cmp ecx, eax
mov dword [ebp - 8], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
je 0x57085d
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], ecx
nop dword [eax]
mov bl, byte [ebx]
mov byte [ebp - 0x2c], bl
cmp edx, 0x3a
jg 0x56ef06
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [0x73eca8]
ja 0x5705ae
mov ecx, dword [ebp - 8]
jmp 0x56e6f2
mov edx, 0x2c
jmp 0x56e6f2
mov edx, 0x40
lea eax, [edx - 1]
cmp eax, 0x3f
ja case.default.0x56e6fe
jmp dword [eax*4 + 0x570a8c]
cmp bl, 0xd
je 0x56f220
cmp bl, 0xa
je 0x56f220
mov eax, dword [edi]
and eax, 0xdffffc03
mov dword [edi + 8], 0xffffffff
mov dword [edi], eax
mov dword [edi + 0xc], 0xffffffff
cmp bl, 0x48
je 0x56f0aa
and eax, 0xfffffffc
mov edx, 0x12
mov dword [edi], eax
mov dword [ebp - 4], edx
jmp 0x56e6f2
cmp bl, 0x30
jl 0x56e754
cmp bl, 0x39
jle 0x56f10f
cmp bl, 0xa
je 0x56e762
cmp bl, 0xd
jne 0x56f145
mov edx, 0xf
mov dword [ebp - 4], edx
jmp 0x56e6f2
mov edx, dword [ebp - 0x20]
mov eax, ecx
test edx, edx
cmovne eax, edx
and dword [edi], 0xe0ffffff
mov dword [ebp - 0x20], eax
mov edx, 0x10
mov dword [ebp - 4], edx
cmp bl, 0xd
je 0x56e6f2
cmp bl, 0xa
je 0x56e6f2
mov dword [ebp - 0x20], eax
jmp 0x56f220
cmp bl, 0xd
je 0x56f218
cmp bl, 0xa
jne 0x56f15e
mov edx, 0x39
mov dword [ebp - 4], edx
jmp 0x56e6f2
mov esi, dword [ebp - 8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [edi]
shr ecx, 0x11
and ecx, 0x7f
mov dword [ebp + 8], ecx
cmp esi, dword [ebp - 0xc]
je 0x56f2c0
mov bl, byte [esi]
mov byte [ebp - 0x2c], bl
cmp bl, 0xd
je 0x56f23d
cmp bl, 0xa
je 0x56ec60
cmp dword [ebp - 0x1c], 0
jl 0x56e80e
cmp bl, 9
je 0x56e80e
cmp bl, 0x1f
jbe 0x5705c2
cmp bl, 0x7f
je 0x5705c2
mov dl, bl
or dl, 0x20
cmp ecx, 0x1a
ja case.0x56e823.1
movzx eax, byte [ecx + 0x570bcc]
jmp dword [eax*4 + 0x570b8c]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
mov edx, dword [0x73eca8]
sub eax, ebx
add eax, dword [ebp + 0x14]
cmp eax, edx
cmovb edx, eax
add edx, ebx
cmp ebx, edx
je 0x56e88d
mov esi, dword [ebp - 0x1c]
nop dword [eax]
mov al, byte [ebx]
cmp al, 0xd
je 0x56e88c
cmp al, 0xa
je 0x56e88c
test esi, esi
js 0x56e872
cmp al, 9
je 0x56e872
cmp al, 0x1f
jbe 0x5705d6
cmp al, 0x7f
je 0x5705d6
inc ebx
cmp ebx, edx
jne 0x56e850
cmp ebx, dword [ebp - 0xc]
lea esi, [ebx - 1]
mov edx, dword [ebp - 4]
cmovne esi, ebx
inc esi
mov dword [ebp - 8], esi
jmp 0x56e7d1
dec ebx
cmp ebx, dword [ebp - 0xc]
lea esi, [ebx - 1]
mov edx, dword [ebp - 4]
cmovne esi, ebx
inc esi
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp bl, 0x20
je case.0x56e823.9
mov ecx, 0xb
mov dword [ebp + 8], ecx
cmp bl, 0x20
jne 0x56e8cc
mov edx, dword [ebp - 4]
mov ecx, 0xc
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp bl, 0x30
jl 0x5705ea
cmp bl, 0x39
jg 0x5705ea
cmp dword [edi + 0xc], 0x19999999
mov eax, dword [edi + 8]
ja 0x5705ea
jb 0x56e8fb
cmp eax, 0x99999998
ja 0x5705ea
mov ecx, dword [edi + 0xc]
movsx eax, bl
mov ebx, dword [edi + 8]
sub eax, 0x30
cdq
mov esi, eax
mov eax, ebx
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov eax, dword [edi + 0xc]
adc eax, ecx
mov ecx, dword [ebp + 8]
shld eax, ebx, 1
add ebx, ebx
add esi, ebx
mov dword [edi + 8], esi
mov esi, dword [ebp - 8]
adc edx, eax
inc esi
mov dword [edi + 0xc], edx
mov edx, dword [ebp - 4]
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp bl, 0x20
je case.0x56e823.9
mov eax, dword [edi]
mov ecx, dword [edi + 0x14]
and eax, 0xff19ffff
or eax, 0x180000
and ecx, 0x99ffffff
mov dword [edi], eax
or ecx, 0x19000000
jmp 0x57081e
cmp dl, 0x63
jne 0x56e97c
mov edx, dword [ebp - 4]
mov ecx, 0x10
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp dl, 0x20
je case.0x56e823.9
movzx eax, dl
xor ecx, ecx
cmp byte [eax + 0x692ac0], cl
mov eax, 0x11
cmovne ecx, eax
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 4]
inc esi
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov eax, dword [edi]
lea esi, [eax + 0x1000000]
xor esi, eax
and esi, 0x1f000000
xor esi, eax
mov dword [edi], esi
shr esi, 0x18
and esi, 0x1f
cmp esi, 7
ja 0x56e9e6
cmp dl, byte [esi + str.chunked]
jne 0x56e9e6
mov edx, dword [ebp - 4]
cmp esi, 6
mov esi, dword [ebp - 8]
jne 0x56e99a
mov ecx, 0x17
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov esi, dword [ebp - 8]
mov ecx, 0x11
mov edx, dword [ebp - 4]
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov edx, dword [ebp - 4]
cmp bl, 0x2c
jne 0x56e99a
and dword [edi], 0xe0ffffff
mov ecx, 0xf
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp dl, 0x6b
jne 0x56ea35
mov edx, dword [ebp - 4]
mov ecx, 0x13
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp dl, 0x63
jne 0x56ea4e
mov edx, dword [ebp - 4]
mov ecx, 0x14
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp dl, 0x75
jne 0x56ea67
mov edx, dword [ebp - 4]
mov ecx, 0x15
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp dl, 0x20
je case.0x56e823.9
movzx eax, dl
xor ecx, ecx
mov edx, dword [ebp - 4]
cmp byte [eax + 0x692ac0], cl
mov eax, 0x16
cmovne ecx, eax
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov eax, dword [edi]
lea esi, [eax + 0x1000000]
xor esi, eax
and esi, 0x1f000000
xor esi, eax
mov dword [edi], esi
shr esi, 0x18
and esi, 0x1f
cmp esi, 0xa
ja 0x56ead9
cmp dl, byte [esi + str.keep_alive]
jne 0x56ead9
mov edx, dword [ebp - 4]
cmp esi, 9
mov esi, dword [ebp - 8]
jne 0x56e99a
mov ecx, 0x18
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov esi, dword [ebp - 8]
mov ecx, 0x16
mov edx, dword [ebp - 4]
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov eax, dword [edi]
lea esi, [eax + 0x1000000]
xor esi, eax
and esi, 0x1f000000
xor esi, eax
mov dword [edi], esi
shr esi, 0x18
and esi, 0x1f
cmp esi, 5
ja 0x56ead9
cmp dl, byte [esi + str.close]
jne 0x56ead9
mov edx, dword [ebp - 4]
cmp esi, 4
mov esi, dword [ebp - 8]
jne 0x56e99a
mov ecx, 0x19
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov eax, dword [edi]
lea esi, [eax + 0x1000000]
xor esi, eax
and esi, 0x1f000000
xor esi, eax
mov dword [edi], esi
shr esi, 0x18
and esi, 0x1f
cmp esi, 7
ja 0x56ead9
cmp dl, byte [esi + str.upgrade]
jne 0x56ead9
mov edx, dword [ebp - 4]
cmp esi, 6
mov esi, dword [ebp - 8]
jne 0x56e99a
mov ecx, 0x1a
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov edx, dword [ebp - 4]
cmp bl, 0x2c
jne 0x56e99a
and dword [edi], 0xe0ffffff
mov ecx, 0x12
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov edx, dword [ebp - 4]
cmp bl, 0x20
je 0x56e99a
mov ecx, 0x11
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp bl, 0x2c
jne 0x56ec2d
cmp ecx, 0x18
jne 0x56ebe9
or dword [edi], 8
mov ecx, 0x12
and dword [edi], 0xe0ffffff
inc esi
mov edx, dword [ebp - 4]
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp ecx, 0x19
jne 0x56ec0b
or dword [edi], 0x10
mov ecx, 0x12
and dword [edi], 0xe0ffffff
inc esi
mov edx, dword [ebp - 4]
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
cmp ecx, 0x1a
jne 0x56ec13
or dword [edi], 0x20
and dword [edi], 0xe0ffffff
mov ecx, 0x12
mov edx, dword [ebp - 4]
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov edx, dword [ebp - 4]
cmp bl, 0x20
je 0x56e99a
mov ecx, 0x16
inc esi
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
xor ecx, ecx
mov edx, 0x32
inc esi
mov dword [ebp - 4], edx
mov dword [ebp + 8], ecx
mov dword [ebp - 8], esi
jmp 0x56e7d1
mov eax, esi
mov edx, 0x34
sub eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x10]
add esi, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], esi
cmp esi, dword [0x73eca8]
ja 0x5705ae
mov esi, dword [ebp - 0x1c]
shl ecx, 0x11
xor ecx, dword [edi]
and ecx, 0xfe0000
xor ecx, dword [edi]
cmp dword [ebp - 0x18], 0
mov dword [edi], ecx
je 0x56ef06
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x10], 0
je 0x56ecfc
mov eax, dword [ebp - 8]
and ecx, 0xfffed3ff
or ecx, 0xd000
mov dword [edi], ecx
mov ecx, dword [ebp - 0x18]
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56ece3
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [edi + 0x14], eax
jmp 0x56ece6
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x57062f
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0
jmp 0x56e6f2
cmp bl, 0x20
je 0x56ed79
cmp bl, 9
je 0x56ed79
mov edx, dword [edi]
mov eax, edx
shr eax, 0x11
and eax, 0x7f
add eax, 0xffffffe9
cmp eax, 3
ja case.default.0x56ed2a
jmp dword [eax*4 + 0x570be8]
or edx, 8
mov dword [edi], edx
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56e6f2
or edx, 0x10
mov dword [edi], edx
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56e6f2
or edx, 4
mov dword [edi], edx
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56e6f2
or edx, 0x20
mov dword [edi], edx
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56e6f2
mov edx, dword [edi]
mov eax, edx
and eax, 0xfe0000
cmp eax, 0x160000
jne 0x56ed97
and edx, 0xff19ffff
or edx, 0x180000
mov dword [edi], edx
mov edx, 0x31
mov dword [ebp - 4], edx
jmp 0x56e6f2
cmp bl, 0x20
je 0x56f308
cmp bl, 9
je 0x56f308
mov esi, dword [edi]
mov eax, esi
shr eax, 0x11
mov edx, esi
and eax, 0x7f
add eax, 0xfffffff6
cmp eax, 0x10
ja case.0x56edd1.11
movzx eax, byte [eax + 0x570c10]
jmp dword [eax*4 + 0x570bf8]
or edx, 8
jmp 0x56edea
or edx, 0x10
jmp 0x56edea
or edx, 0x20
jmp 0x56edea
or edx, 4
mov dword [edi], edx
mov esi, dword [ebp - 0x18]
mov eax, ecx
test esi, esi
cmovne eax, esi
mov esi, 0x2c
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x56e6e6
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x10], 0
je 0x56ee7c
mov eax, ecx
and edx, 0xfffeb3ff
mov ecx, dword [ebp - 0x18]
or edx, 0xb000
sub eax, ecx
mov dword [edi], edx
push eax
mov eax, dword [esi + 0x10]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56ee51
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [edi + 0x14], eax
jmp 0x56ee54
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x57062f
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0
jmp 0x56e6f2
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0
jmp 0x56e6f2
cmp bl, 0xa
jne 0x57063c
mov edx, dword [edi]
mov eax, edx
shr eax, 2
test al, 0x10
je 0x56ef0e
mov eax, dword [ebp + 0xc]
mov esi, 0x40
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x1c]
cmp dword [eax + 0x24], 0
je 0x56e6ed
and edx, 0xffff03ff
or edx, 0x10000
mov dword [edi], edx
mov eax, dword [eax + 0x24]
push edi
call eax
add esp, 4
test eax, eax
je 0x56eeed
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x8affffff
or eax, 0xa000000
mov dword [edi + 0x14], eax
jmp 0x56eef0
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x57062f
mov ecx, dword [ebp - 8]
jmp 0x56e6f2
test edx, 0x20000000
je 0x56ef3e
test al, al
jns 0x56ef3e
test al, 1
je 0x56ef3a
test esi, 0x40000000
jne 0x56ef3e
mov ecx, dword [edi + 0x14]
and ecx, 0x9affffff
or ecx, 0x1a000000
jmp 0x57081e
test esi, esi
jns 0x56ef26
and eax, 0x28
mov esi, 0x3a
mov dword [ebp - 4], esi
cmp al, 0x28
jne 0x56ef72
mov ecx, dword [edi + 0x14]
test dl, 3
je 0x56ef65
cmp cx, 0x65
je 0x56ef65
xor eax, eax
and ecx, 0x7fffffff
jmp 0x56ef88
mov eax, 0x80000000
and ecx, 0x7fffffff
jmp 0x56ef88
xor ecx, ecx
mov eax, 0x80000000
cmp byte [edi + 0x16], 5
cmove ecx, eax
mov eax, dword [edi + 0x14]
and eax, 0x7fffffff
or ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x14], ecx
mov eax, dword [eax + 0x14]
test eax, eax
je 0x56efbd
push edi
call eax
add esp, 4
sub eax, 0
je 0x56efbd
sub eax, 1
je 0x56efb7
sub eax, 1
jne 0x57060b
or dword [edi + 0x14], 0x80000000
or dword [edi], 0x100
test dword [edi + 0x14], 0x7f000000
jne 0x57061b
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x1c]
jmp 0x56e6f2
mov eax, dword [ebp + 0x10]
mov esi, dword [edi + 8]
sub eax, ecx
add eax, dword [ebp + 0x14]
cdq
mov dword [ebp + 8], edx
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x30], eax
cmp edx, dword [ebp + 8]
ja 0x56effe
jb 0x56eff8
cmp esi, eax
jae 0x56effe
mov dword [ebp - 0x30], esi
mov dword [ebp + 8], edx
cmp dword [ebp - 0x14], 0
mov eax, ecx
cmovne eax, dword [ebp - 0x14]
sub esi, dword [ebp - 0x30]
mov dword [edi + 8], esi
sbb edx, dword [ebp + 8]
dec ecx
add ecx, dword [ebp - 0x30]
or esi, edx
mov dword [ebp - 0x14], eax
mov dword [edi + 0xc], edx
mov dword [ebp - 8], ecx
jne 0x56f312
mov esi, dword [ebp - 0x1c]
mov edx, 0x40
mov dword [ebp - 4], edx
test eax, eax
je 0x56e6f2
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x18], 0
je 0x56f09b
mov eax, dword [edi]
and eax, 0xffff03ff
or eax, 0x10000
mov dword [edi], eax
mov eax, ecx
mov ecx, dword [ebp - 0x14]
sub eax, ecx
inc eax
push eax
mov eax, dword [esi + 0x18]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56f07f
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [edi + 0x14], eax
jmp 0x56f082
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x57062f
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], 0
jmp 0x56e6f2
mov ecx, dword [ebp + 0xc]
mov edx, 3
mov dword [ebp - 4], edx
cmp dword [ecx], 0
je 0x57023e
and eax, 0xfffe0fff
or eax, 0xc00
mov dword [edi], eax
mov eax, dword [ecx]
push edi
call eax
add esp, 4
test eax, eax
je 0x56f0ee
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x81ffffff
or eax, 0x1000000
mov dword [edi + 0x14], eax
jmp 0x56f0f1
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
mov ebx, dword [ebp - 8]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570589
jmp 0x56f223
mov ax, word [edi + 0x14]
mov cx, ax
shl ax, 2
add cx, ax
movsx ax, bl
mov ebx, dword [ebp - 8]
add cx, cx
sub cx, 0x30
add cx, ax
mov word [edi + 0x14], cx
mov ecx, dword [edi + 0x14]
cmp cx, 0x3e7
ja 0x56f4e0
jmp 0x56f223
cmp bl, 0x20
mov ebx, dword [ebp - 8]
jne 0x56f4dd
mov edx, 0xf
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x20
je 0x5705c2
movzx eax, bl
mov al, byte [eax + 0x692ac0]
mov byte [ebp + 0xb], al
test al, al
je 0x5705c2
mov ecx, dword [ebp - 0x28]
mov esi, 0x2d
mov ebx, dword [ebp - 8]
test ecx, ecx
mov edx, dword [edi]
mov eax, ebx
cmovne eax, ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0x28], eax
mov ecx, edx
movsx eax, byte [ebp + 0xb]
and ecx, 0xe0ffffff
add eax, 0xffffff9d
cmp eax, 0x12
ja case.0x56f1b0.100
movzx eax, byte [eax + 0x570c38]
jmp dword [eax*4 + 0x570c24]
mov edx, dword [ebp - 4]
and ecx, 0xff03ffff
or ecx, 0x20000
mov dword [edi], ecx
jmp 0x56f223
mov ecx, edx
mov edx, dword [ebp - 4]
and ecx, 0xe00bffff
or ecx, 0xa0000
mov dword [edi], ecx
jmp 0x56f223
mov ecx, edx
mov edx, dword [ebp - 4]
and ecx, 0xe00fffff
or ecx, 0xe0000
mov dword [edi], ecx
jmp 0x56f223
mov ecx, edx
mov edx, dword [ebp - 4]
and ecx, 0xe011ffff
or ecx, 0x100000
mov dword [edi], ecx
jmp 0x56f223
mov ecx, edx
and ecx, 0xe001ffff
mov dword [edi], ecx
mov edx, dword [ebp - 4]
jmp 0x56f223
mov edx, 0x39
mov dword [ebp - 4], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
inc ebx
mov dword [ebp - 8], ebx
cmp ebx, esi
je 0x57085d
mov esi, dword [ebp - 0x1c]
jmp 0x56e6c0
mov esi, dword [ebp - 0x18]
mov eax, ecx
shl eax, 0x11
mov edx, 0x34
xor eax, dword [edi]
and eax, 0xfe0000
mov dword [ebp - 4], edx
xor eax, dword [edi]
mov dword [edi], eax
test esi, esi
je 0x56f2c0
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x10], 0
je 0x56f2b9
and eax, 0xfffed3ff
or eax, 0xd000
mov dword [edi], eax
mov eax, dword [ebp - 8]
sub eax, esi
push eax
mov eax, dword [ebx + 0x10]
push esi
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56f29d
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [edi + 0x14], eax
jmp 0x56f2a0
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570790
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0xc]
shl ecx, 0x11
xor ecx, dword [edi]
and ecx, 0xfe0000
xor dword [edi], ecx
mov ecx, dword [ebp - 8]
cmp ecx, esi
lea ebx, [ecx - 1]
cmovne ebx, ecx
mov ecx, dword [ebp - 0x10]
mov eax, ebx
sub eax, dword [ebp - 0x34]
add ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, dword [0x73eca8]
jbe 0x56f226
mov ecx, dword [edi + 0x14]
and ecx, 0x8cffffff
or ecx, 0xc000000
jmp 0x570821
mov edx, 0x2e
jmp 0x56f21d
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], eax
jmp 0x56f220
cmp bl, 0xd
je 0x56f220
cmp bl, 0xa
mov ebx, dword [ebp - 8]
je 0x56f223
mov ecx, dword [edi + 0x14]
and ecx, 0x8dffffff
or ecx, 0xd000000
jmp 0x570821
cmp bl, 0x54
jne 0x56f362
mov eax, dword [edi]
mov edx, 6
and eax, 0xfffffffd
or eax, 1
mov dword [edi], eax
jmp 0x56f21d
cmp bl, 0x45
jne 0x570650
mov eax, dword [edi]
mov edx, 0x13
and eax, 0xe2fffffc
mov byte [edi + 0x16], 2
or eax, 0x2000000
mov dword [edi], eax
jmp 0x56f21d
cmp bl, 0xd
je 0x56f220
cmp bl, 0xa
je 0x56f220
mov eax, dword [edi]
and eax, 0xdffffc03
mov dword [edi + 8], 0xffffffff
mov dword [edi], eax
mov dword [edi + 0xc], 0xffffffff
cmp bl, 0x48
jne 0x570650
mov ecx, dword [ebp + 0xc]
mov edx, 5
mov dword [ebp - 4], edx
cmp dword [ecx], 0
je 0x57023e
and eax, 0xfffe17ff
or eax, 0x1400
jmp 0x56f0c8
cmp bl, 0x54
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 6
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x54
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 7
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x50
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 8
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x2f
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 9
mov dword [ebp - 4], edx
jmp 0x56f223
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x570678
movsx ax, bl
mov edx, 0xa
sub ax, 0x30
mov word [edi + 0x10], ax
jmp 0x56f21d
cmp bl, 0x2e
mov ebx, dword [ebp - 8]
jne 0x57068c
mov edx, 0xb
mov dword [ebp - 4], edx
jmp 0x56f223
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x570678
movsx ax, bl
mov edx, 0xc
sub ax, 0x30
mov word [edi + 0x12], ax
jmp 0x56f21d
cmp bl, 0x20
mov ebx, dword [ebp - 8]
jne 0x57068c
mov edx, 0xd
mov dword [ebp - 4], edx
jmp 0x56f223
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x56f4d1
movsx ax, bl
mov edx, 0xe
sub ax, 0x30
mov word [edi + 0x14], ax
jmp 0x56f21d
cmp bl, 0x20
mov ebx, dword [ebp - 8]
je 0x56f223
mov ecx, dword [edi + 0x14]
and ecx, 0x8fffffff
or ecx, 0xf000000
jmp 0x570821
mov ecx, dword [ebp + 0xc]
cmp bl, 0xd
jne 0x56f57f
cmp dword [ebp - 0x20], 0
mov edx, 0x11
mov dword [ebp - 4], edx
je 0x57023e
cmp dword [ecx + 8], 0
mov ebx, dword [ebp - 8]
je 0x56f570
mov eax, dword [edi]
mov edx, dword [ebp - 0x20]
and eax, 0xfffe47ff
or eax, 0x4400
mov dword [edi], eax
mov eax, ebx
sub eax, edx
push eax
mov eax, dword [ecx + 8]
push edx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56f554
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [edi + 0x14], eax
jmp 0x56f557
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570589
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x20], 0
jmp 0x56f229
cmp bl, 0xa
jne 0x5702eb
mov esi, dword [ebp - 0x20]
mov edx, 0x2c
mov dword [ebp - 4], edx
test esi, esi
je 0x5701e1
cmp dword [ecx + 8], 0
mov ebx, dword [ebp - 8]
je 0x56f570
mov eax, dword [edi]
and eax, 0xfffeb3ff
or eax, 0xb000
mov dword [edi], eax
mov eax, ebx
sub eax, esi
push eax
mov eax, dword [ecx + 8]
push esi
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56f554
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [edi + 0x14], eax
jmp 0x56f557
cmp bl, 0xa
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xd
je 0x56f220
cmp bl, 0xa
je 0x56f220
mov ecx, dword [edi]
mov al, bl
and ecx, 0xdffffc03
mov dword [edi + 8], 0xffffffff
or al, 0x20
mov dword [edi], ecx
mov dword [edi + 0xc], 0xffffffff
cmp al, 0x61
jb case.0x56f658.69
cmp al, 0x7a
ja case.0x56f658.69
and ecx, 0xe1ffffff
movsx eax, bl
or ecx, 0x1000000
mov byte [edi + 0x16], 0
add eax, 0xffffffbf
mov dword [edi], ecx
cmp eax, 0x14
ja case.0x56f658.69
jmp dword [eax*4 + 0x570c4c]
mov byte [edi + 0x16], 0x13
jmp case.0x56f658.68
mov byte [edi + 0x16], 0x10
jmp case.0x56f658.68
mov byte [edi + 0x16], 5
jmp case.0x56f658.68
mov byte [edi + 0x16], 1
jmp case.0x56f658.68
mov byte [edi + 0x16], 2
jmp case.0x56f658.68
mov byte [edi + 0x16], 9
jmp case.0x56f658.68
mov byte [edi + 0x16], 0xa
jmp case.0x56f658.68
mov byte [edi + 0x16], 0x19
jmp case.0x56f658.68
mov byte [edi + 0x16], 6
jmp case.0x56f658.68
mov byte [edi + 0x16], 3
jmp case.0x56f658.68
mov byte [edi + 0x16], 0x14
jmp case.0x56f658.68
mov byte [edi + 0x16], 0x1a
jmp case.0x56f658.68
mov byte [edi + 0x16], 7
jmp case.0x56f658.68
mov byte [edi + 0x16], 0xf
mov eax, dword [ebp + 0xc]
mov edx, 0x13
mov dword [ebp - 4], edx
cmp dword [eax], 0
je 0x570596
and ecx, 0xfffe4fff
or ecx, 0x4c00
mov dword [edi], ecx
mov eax, dword [eax]
jmp 0x56f0cc
test bl, bl
je case.0x56f658.69
movzx edx, byte [edi + 0x16]
mov esi, dword [edx*4 + 0x73ecb0]
cmp bl, 0x20
jne 0x56f70f
mov ecx, dword [edi]
mov eax, ecx
shr eax, 0x18
and eax, 0x1f
cmp byte [eax + esi], 0
jne 0x56f70f
mov edx, 0x14
mov dword [ebp - 4], edx
jmp 0x56f8a6
mov eax, dword [edi]
mov ecx, eax
shr eax, 0x18
and eax, 0x1f
shr ecx, 0x10
cmp bl, byte [eax + esi]
je 0x56f8a1
cmp bl, 0x41
jl 0x56f72f
cmp bl, 0x5a
jle 0x56f738
cmp bl, 0x2d
jne case.0x56f658.69
and ecx, 0x1f00
shl edx, 0x10
or ecx, edx
movsx eax, bl
or ecx, eax
cmp ecx, 0xa014f
ja 0x56f80f
je 0x56f806
cmp ecx, 0x50148
ja 0x56f7b8
je 0x56f7af
cmp ecx, 0x30155
ja 0x56f79a
je 0x56f791
sub ecx, 0x30141
je 0x56f788
sub ecx, 0x11
jne case.0x56f658.69
mov byte [edi + 0x16], 0xc
jmp 0x56f8a1
mov byte [edi + 0x16], 0x1c
jmp 0x56f8a1
mov byte [edi + 0x16], 4
jmp 0x56f8a1
cmp ecx, 0x40252
jne case.0x56f658.69
mov byte [edi + 0x16], 0x1d
jmp 0x56f8a1
mov byte [edi + 0x16], 0x16
jmp 0x56f8a1
cmp ecx, 0xa012d
ja 0x56f7f1
je 0x56f7e8
cmp ecx, 0x50250
je 0x56f7df
cmp ecx, 0x90149
jne case.0x56f658.69
mov byte [edi + 0x16], 0x1f
jmp 0x56f8a1
mov byte [edi + 0x16], 8
jmp 0x56f8a1
mov byte [edi + 0x16], 0x18
jmp 0x56f8a1
cmp ecx, 0xa0145
jne case.0x56f658.69
mov byte [edi + 0x16], 0x17
jmp 0x56f8a1
mov byte [edi + 0x16], 0xb
jmp 0x56f8a1
cmp ecx, 0xf0253
ja 0x56f861
je 0x56f85b
cmp ecx, 0xc0450
ja 0x56f849
je 0x56f843
cmp ecx, 0xa0241
je 0x56f83d
cmp ecx, 0xa0341
jne case.0x56f658.69
mov byte [edi + 0x16], 0x1e
jmp 0x56f8a1
mov byte [edi + 0x16], 0x15
jmp 0x56f8a1
mov byte [edi + 0x16], 0xd
jmp 0x56f8a1
cmp ecx, 0xf0242
jne case.0x56f658.69
mov byte [edi + 0x16], 0x12
jmp 0x56f8a1
mov byte [edi + 0x16], 0x1b
jmp 0x56f8a1
cmp ecx, 0x1a0145
ja 0x56f891
je 0x56f88b
cmp ecx, 0xf0349
je 0x56f885
cmp ecx, 0x140242
jne case.0x56f658.69
mov byte [edi + 0x16], 0x11
jmp 0x56f8a1
mov byte [edi + 0x16], 0x20
jmp 0x56f8a1
mov byte [edi + 0x16], 0xe
jmp 0x56f8a1
cmp ecx, 0x1a014f
jne case.0x56f658.69
mov byte [edi + 0x16], 0x21
mov edx, dword [ebp - 4]
mov ecx, dword [edi]
lea eax, [ecx + 0x1000000]
xor eax, ecx
and eax, 0x1f000000
xor eax, ecx
mov dword [edi], eax
jmp 0x56f220
cmp bl, 0x20
mov ebx, dword [ebp - 8]
je 0x5705a3
mov ecx, dword [ebp - 0x24]
mov eax, ebx
push dword [ebp - 0x2c]
test ecx, ecx
cmovne eax, ecx
cmp byte [edi + 0x16], 5
mov dword [ebp - 0x24], eax
mov eax, 0x18
cmove edx, eax
push edx
call fcn.00571550
mov edx, eax
add esp, 8
mov dword [ebp - 4], edx
cmp edx, 1
jne 0x56f223
mov ecx, dword [edi + 0x14]
and ecx, 0x91ffffff
or ecx, 0x11000000
jmp 0x570821
cmp bl, 0xa
je 0x5706b4
cmp bl, 0xd
je 0x5706b4
cmp bl, 0x20
je 0x5706b4
push dword [ebp - 0x2c]
push edx
call fcn.00571550
mov ebx, dword [ebp - 8]
mov edx, eax
add esp, 8
mov dword [ebp - 4], edx
cmp edx, 1
je 0x56f8fb
jmp 0x56f223
cmp bl, 0xa
je 0x56f9db
cmp bl, 0xd
je 0x56f9db
cmp bl, 0x20
je 0x56f97d
push dword [ebp - 0x2c]
push edx
call fcn.00571550
mov ebx, dword [ebp - 8]
mov edx, eax
add esp, 8
mov dword [ebp - 4], edx
cmp edx, 1
je 0x56f8fb
jmp 0x56f223
cmp dword [ebp - 0x24], 0
mov edx, 0x20
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
je 0x57023e
cmp dword [ecx + 4], 0
mov ebx, dword [ebp - 8]
je 0x56fa5c
mov eax, dword [edi]
mov edx, dword [ebp - 0x24]
and eax, 0xfffe83ff
or eax, 0x8000
mov dword [edi], eax
mov eax, ebx
sub eax, edx
push eax
mov eax, dword [ecx + 4]
push edx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56fa40
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [edi + 0x14], eax
jmp 0x56fa43
mov esi, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp + 0xc]
cmp bl, 0xd
mov dword [edi + 0x10], 0x90000
setne dl
add edx, 0x2b
mov dword [ebp - 4], edx
test esi, esi
je 0x5701e1
cmp dword [ecx + 4], 0
mov ebx, dword [ebp - 8]
je 0x56fa5c
mov eax, dword [edi]
and eax, 0xfffe03ff
shl edx, 0xa
or eax, edx
mov dword [edi], eax
mov eax, ebx
sub eax, esi
push eax
mov eax, dword [ecx + 4]
push esi
push edi
call eax
add esp, 0xc
test eax, eax
je 0x56fa40
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [edi + 0x14], eax
jmp 0x56fa43
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570589
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x24], 0
jmp 0x56f229
movsx eax, bl
sub eax, 0x20
je 0x56f220
sub eax, 0x28
je 0x56fa97
sub eax, 1
jne 0x570650
cmp byte [edi + 0x16], 0x21
jne 0x570650
lea edx, [eax + 0x25]
jmp 0x56f21d
mov edx, 0x21
jmp 0x56f21d
cmp bl, 0x54
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x22
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x54
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x23
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x50
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x24
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x43
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x26
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0x45
jmp 0x56fad6
cmp bl, 0x2f
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x27
mov dword [ebp - 4], edx
jmp 0x56f223
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x570678
movsx ax, bl
mov edx, 0x28
sub ax, 0x30
mov word [edi + 0x10], ax
jmp 0x56f21d
cmp bl, 0x2e
mov ebx, dword [ebp - 8]
jne 0x57068c
mov edx, 0x29
mov dword [ebp - 4], edx
jmp 0x56f223
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x570678
movsx ax, bl
mov edx, 0x2a
sub ax, 0x30
mov word [edi + 0x12], ax
jmp 0x56f21d
cmp bl, 0xd
jne 0x56fb8d
mov edx, 0x2b
jmp 0x56f21d
cmp bl, 0xa
mov ebx, dword [ebp - 8]
jne 0x57068c
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xa
mov ebx, dword [ebp - 8]
jne 0x5706c8
mov edx, 0x2c
mov dword [ebp - 4], edx
jmp 0x56f223
mov eax, ecx
mov dword [ebp + 8], eax
cmp ecx, dword [ebp - 0xc]
je 0x56fe2b
nop dword [eax]
mov bl, byte [ecx]
cmp bl, 0x20
je 0x56fe25
movzx eax, bl
mov bh, byte [eax + 0x692ac0]
test bh, bh
je 0x56fe25
mov edx, dword [edi]
mov eax, edx
shr eax, 0x11
and eax, 0x7f
cmp eax, 0xe
ja case.0x56fbff.11
jmp dword [eax*4 + 0x570ca0]
mov eax, dword [ebp + 0x10]
lea esi, [ecx + 1]
mov edx, dword [0x73eca8]
sub eax, ecx
add eax, dword [ebp + 0x14]
cmp eax, edx
cmovb edx, eax
add edx, ecx
cmp esi, edx
jae case.0x56fbff.11
mov al, byte [esi]
cmp al, 0x20
je case.0x56fbff.11
movzx eax, al
cmp byte [eax + 0x692ac0], 0
je case.0x56fbff.11
inc esi
inc ecx
cmp esi, edx
jb 0x56fc26
jmp case.0x56fbff.11
lea ecx, [edx + 0x1000000]
xor eax, eax
and ecx, 0x1f000000
mov esi, 0x40000
cmp bh, 0x6f
cmove eax, esi
and edx, 0xe001ffff
or ecx, eax
or ecx, edx
mov dword [edi], ecx
mov ecx, dword [ebp - 8]
jmp case.0x56fbff.11
lea ecx, [edx + 0x1000000]
xor eax, eax
and ecx, 0x1f000000
mov esi, 0x60000
cmp bh, 0x6e
jmp 0x56fc61
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
cmp bh, 0x6e
je 0x56fcc6
cmp bh, 0x74
je 0x56fcb5
and eax, 0xff01ffff
mov dword [edi], eax
jmp case.0x56fbff.11
and eax, 0xff0dffff
or eax, 0xc0000
mov dword [edi], eax
jmp case.0x56fbff.11
and eax, 0xff09ffff
or eax, 0x80000
mov dword [edi], eax
jmp case.0x56fbff.11
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
mov edx, eax
mov dword [edi], eax
shr edx, 0x18
and edx, 0x1f
cmp edx, 0xa
ja 0x56fd17
cmp bh, byte [edx + str.connection]
jne 0x56fd17
cmp edx, 9
jne case.0x56fbff.11
and eax, 0xff13ffff
or eax, 0x120000
mov dword [edi], eax
jmp case.0x56fbff.11
and eax, 0xff01ffff
mov dword [edi], eax
jmp case.0x56fbff.11
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
mov edx, eax
mov dword [edi], eax
shr edx, 0x18
and edx, 0x1f
cmp edx, 0x10
ja 0x56fd17
cmp bh, byte [edx + str.proxy_connection]
jne 0x56fd17
cmp edx, 0xf
jmp 0x56fd00
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
mov edx, eax
mov dword [edi], eax
shr edx, 0x18
and edx, 0x1f
cmp edx, 0xe
ja 0x56fd17
cmp bh, byte [edx + str.content_length]
jne 0x56fd17
cmp edx, 0xd
jne case.0x56fbff.11
and eax, 0xff15ffff
or eax, 0x140000
mov dword [edi], eax
jmp case.0x56fbff.11
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
mov edx, eax
mov dword [edi], eax
shr edx, 0x18
and edx, 0x1f
cmp edx, 0x11
ja 0x56fd17
cmp bh, byte [edx + str.transfer_encoding]
jne 0x56fd17
cmp edx, 0x10
jne case.0x56fbff.11
and eax, 0xff1bffff
or eax, 0x201a0000
mov dword [edi], eax
jmp case.0x56fbff.11
lea eax, [edx + 0x1000000]
xor eax, edx
and eax, 0x1f000000
xor eax, edx
mov edx, eax
mov dword [edi], eax
shr edx, 0x18
and edx, 0x1f
cmp edx, 7
ja 0x56fd17
cmp bh, byte [edx + str.upgrade]
jne 0x56fd17
cmp edx, 6
jne case.0x56fbff.11
and eax, 0xff1dffff
or eax, 0x1c0000
mov dword [edi], eax
jmp case.0x56fbff.11
and edx, 0xff01ffff
mov dword [edi], edx
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, dword [ebp - 0xc]
jne 0x56fbd0
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
sub esi, eax
cmp ecx, dword [ebp - 0xc]
jne 0x56fe4f
mov ebx, dword [ebp - 8]
dec ebx
add esi, ebx
mov dword [ebp - 0x10], esi
cmp esi, dword [0x73eca8]
ja 0x56f2f4
jmp 0x56f223
add esi, ecx
mov dword [ebp - 0x10], esi
cmp esi, dword [0x73eca8]
ja 0x5705ae
cmp bl, 0x3a
jne 0x5705c2
cmp dword [ebp - 0x28], 0
mov edx, 0x2e
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
je 0x5702eb
cmp dword [ecx + 0xc], 0
mov ebx, dword [ebp - 8]
je 0x56fed7
mov eax, dword [edi]
mov edx, dword [ebp - 0x28]
and eax, 0xfffebbff
or eax, 0xb800
mov dword [edi], eax
mov eax, ebx
sub eax, edx
push eax
mov eax, dword [ecx + 0xc]
push edx
push edi
call eax
add esp, 0xc
test eax, eax
mov eax, dword [edi + 0x14]
je 0x56febe
and eax, 0x83ffffff
mov dword [edi + 4], esi
or eax, 0x3000000
mov dword [edi + 0x14], eax
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570589
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x28], 0
jmp 0x56f229
cmp bl, 0x20
je 0x56f220
cmp bl, 9
je 0x56f220
cmp bl, 0xd
jne 0x56ff07
mov edx, 0x2f
jmp 0x56f21d
cmp bl, 0xa
jne case.0x56e6fe.49
mov edx, 0x30
jmp 0x56f21d
mov eax, ecx
mov dl, bl
mov ecx, dword [ebp - 0x18]
mov esi, 0x32
test ecx, ecx
mov dword [ebp - 4], esi
cmovne eax, ecx
mov ecx, dword [edi]
mov dword [ebp - 0x18], eax
and ecx, 0xe0ffffff
mov eax, ecx
mov dword [edi], ecx
shr eax, 0x11
or dl, 0x20
and eax, 0x7f
add eax, 0xfffffff7
cmp eax, 9
ja case.0x56ff4e.11
jmp dword [eax*4 + 0x570cdc]
mov edx, dword [ebp - 4]
and ecx, 0xff01ffff
or ecx, 0x80
mov dword [edi], ecx
jmp 0x56f220
cmp dl, 0x63
jne 0x56ff86
mov edx, dword [ebp - 4]
and ecx, 0xff21ffff
or ecx, 0x200000
mov dword [edi], ecx
jmp 0x56f220
mov edx, dword [ebp - 4]
and ecx, 0xff23ffff
or ecx, 0x220000
mov dword [edi], ecx
jmp 0x56f220
cmp bl, 0x30
jl 0x5706f3
cmp bl, 0x39
jg 0x5706f3
test ecx, 0x200
jne 0x5706dc
movsx eax, bl
and ecx, 0xff17ffff
sub eax, 0x30
or ecx, 0x160200
cdq
mov dword [edi + 0xc], edx
mov edx, dword [ebp - 4]
mov dword [edi + 8], eax
mov dword [edi], ecx
jmp 0x56f220
cmp dl, 0x6b
jne 0x56fff8
mov edx, dword [ebp - 4]
and ecx, 0xff27ffff
or ecx, 0x260000
mov dword [edi], ecx
jmp 0x56f220
cmp dl, 0x63
jne 0x570013
mov edx, dword [ebp - 4]
and ecx, 0xff29ffff
or ecx, 0x280000
mov dword [edi], ecx
jmp 0x56f220
cmp dl, 0x75
jne 0x57002e
mov edx, dword [ebp - 4]
and ecx, 0xff2bffff
or ecx, 0x2a0000
mov dword [edi], ecx
jmp 0x56f220
mov edx, dword [ebp - 4]
and ecx, 0xff2dffff
or ecx, 0x2c0000
mov dword [edi], ecx
jmp 0x56f220
and ecx, 0xff01ffff
mov dword [edi], ecx
mov edx, dword [ebp - 4]
jmp 0x56f220
cmp bl, 0xa
mov ebx, dword [ebp - 8]
jne 0x5706c8
mov edx, 0x33
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xa
mov ebx, dword [ebp - 8]
jne 0x570664
mov edx, 0x30
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xa
jne 0x57063c
mov ebx, dword [edi]
mov esi, ebx
shr esi, 2
mov eax, esi
mov dword [edi + 4], 0
and eax, 1
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], eax
jne 0x5700cc
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
test edx, edx
jne 0x5700bc
test eax, eax
je 0x5700c3
and eax, edx
cmp eax, 0xffffffff
jne 0x5700cc
mov dword [ebp + 8], 0
jmp 0x5700d3
mov dword [ebp + 8], 1
mov edx, dword [edi + 0x14]
test edx, edx
jns 0x57010d
mov eax, edx
shr eax, 0x10
cmp al, 5
je 0x57070a
and esi, 0x40
jne 0x57070a
cmp dword [ebp + 8], esi
je 0x57070a
cmp dword [ebp - 0x38], 0
je 0x570180
mov edx, 0x35
jmp 0x56f21d
and esi, 0x40
je 0x5700f9
push edi
call fcn.005710e0
add esp, 4
test eax, eax
je 0x570131
test bl, 3
mov edx, 4
mov eax, 0x12
cmove edx, eax
jmp 0x570136
mov edx, 1
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
cmp dword [ecx + 0x1c], 0
je 0x5702eb
shl edx, 0xa
and ebx, 0xfffe03ff
or ebx, edx
mov dword [edi], ebx
mov eax, dword [ecx + 0x1c]
push edi
call eax
add esp, 4
test eax, eax
mov eax, dword [edi + 0x14]
je 0x56f0f1
and eax, 0x87ffffff
mov dword [edi + 4], 0
or eax, 0x7000000
mov dword [edi + 0x14], eax
jmp 0x56f0f1
test ebx, 0x20000000
je 0x5701a1
test bl, 3
jne 0x570197
cmp dword [ebp - 0x1c], 0
jge 0x57079e
mov edx, 0x3f
jmp 0x56f21d
mov ecx, dword [edi + 8]
mov eax, ecx
mov edx, dword [edi + 0xc]
or eax, edx
jne 0x5701ec
push edi
call fcn.005710e0
add esp, 4
test eax, eax
je 0x5701cc
test bl, 3
mov edx, 4
mov eax, 0x12
cmove edx, eax
jmp 0x5701d1
mov edx, 1
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
cmp dword [ecx + 0x1c], 0
jne 0x570146
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jmp 0x56f229
and ecx, edx
cmp ecx, 0xffffffff
je 0x5701fd
mov edx, 0x3e
jmp 0x56f21d
push edi
call fcn.0056e350
add esp, 4
test eax, eax
jne 0x570197
push edi
call fcn.005710e0
add esp, 4
test eax, eax
je 0x570229
test bl, 3
mov edx, 4
mov eax, 0x12
cmove edx, eax
jmp 0x57022e
mov edx, 1
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
cmp dword [ecx + 0x1c], 0
jne 0x570146
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 8]
jmp 0x56f229
mov eax, dword [ebp - 0x14]
test eax, eax
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
cmovne ebx, eax
mov dword [ebp - 0x14], ebx
lea ebx, [esi - 1]
jmp 0x56f226
push edi
call fcn.005710e0
add esp, 4
test eax, eax
je 0x570281
test byte [edi], 3
mov edx, 4
mov eax, 0x12
cmove edx, eax
jmp 0x570286
mov edx, 1
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
cmp dword [ecx + 0x1c], 0
je 0x5702e1
mov eax, dword [edi]
and eax, 0xfffe03ff
shl edx, 0xa
or eax, edx
mov dword [edi], eax
mov eax, dword [ecx + 0x1c]
push edi
call eax
add esp, 4
test eax, eax
je 0x5702c5
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [edi + 0x14], eax
jmp 0x5702c8
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570586
mov ecx, dword [ebp + 0xc]
cmp dword [edi + 0x14], 0
jl 0x5707cb
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jmp 0x56f229
movzx eax, bl
mov ebx, dword [ebp - 8]
mov al, byte [eax + 0x692bc0]
cmp al, 0xff
je 0x5707ed
movsx eax, al
cdq
mov dword [edi + 0xc], edx
mov edx, 0x36
mov dword [edi + 8], eax
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xd
jne 0x570330
mov edx, 0x38
jmp 0x56f21d
movzx eax, bl
mov al, byte [eax + 0x692bc0]
cmp al, 0xff
jne 0x570355
cmp bl, 0x3b
je 0x57034b
cmp bl, 0x20
jne 0x5707fe
mov edx, 0x37
jmp 0x56f21d
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cmp esi, 0xfffffff
ja case.0x56edd1.10
jb 0x570372
cmp ecx, 0xfffffffe
ja case.0x56edd1.10
shld esi, ecx, 4
movsx eax, al
cdq
shl ecx, 4
add ecx, eax
mov dword [edi + 8], ecx
adc esi, edx
mov edx, dword [ebp - 4]
mov dword [edi + 0xc], esi
jmp 0x56f220
mov esi, dword [ebp - 0xc]
cmp bl, 0xd
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
jne 0x56f229
mov edx, 0x38
mov dword [ebp - 4], edx
jmp 0x56f229
cmp bl, 0xa
jne 0x57063c
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
mov dword [edi + 4], 0
mov dword [ebp - 0x10], 0
jne 0x5703d5
or dword [edi], 0x40
lea edx, [eax + 0x2c]
jmp 0x5703da
mov edx, 0x3b
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
cmp dword [ecx + 0x20], 0
je 0x5702eb
mov eax, dword [edi]
and eax, 0xfffe03ff
shl edx, 0xa
or eax, edx
mov dword [edi], eax
mov eax, dword [ecx + 0x20]
push edi
call eax
add esp, 4
test eax, eax
mov eax, dword [edi + 0x14]
je 0x56f0f1
and eax, 0x89ffffff
mov dword [edi + 4], 0
or eax, 0x9000000
mov dword [edi + 0x14], eax
jmp 0x56f0f1
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp - 8]
sub eax, ebx
add eax, dword [ebp + 0x14]
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cdq
mov dword [ebp + 8], eax
mov eax, edx
mov dword [ebp - 0x34], eax
cmp esi, eax
ja 0x570453
jb 0x57044c
mov edx, dword [ebp + 8]
cmp ecx, edx
jae 0x570456
mov edx, ecx
mov dword [ebp - 0x34], esi
jmp 0x570456
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x14], 0
mov eax, ebx
cmovne eax, dword [ebp - 0x14]
sub ecx, edx
mov dword [edi + 8], ecx
sbb esi, dword [ebp - 0x34]
dec ebx
add ebx, edx
mov dword [ebp - 0x14], eax
or ecx, esi
mov dword [edi + 0xc], esi
jne 0x56f213
mov edx, 0x3c
mov dword [ebp - 4], edx
jmp 0x56f223
cmp bl, 0xd
jne 0x57063c
mov esi, dword [ebp - 0x14]
mov edx, 0x3d
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edx
test esi, esi
je 0x5702eb
cmp dword [ecx + 0x18], 0
mov ebx, dword [ebp - 8]
je 0x570503
mov eax, dword [edi]
and eax, 0xfffef7ff
or eax, 0xf400
mov dword [edi], eax
mov eax, ebx
sub eax, esi
push eax
mov eax, dword [ecx + 0x18]
push esi
push edi
call eax
add esp, 0xc
test eax, eax
je 0x5704e7
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [edi + 0x14], eax
jmp 0x5704ea
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
jne 0x570589
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], 0
jmp 0x56f229
cmp bl, 0xa
jne 0x57063c
mov ecx, dword [ebp + 0xc]
mov edx, 0x35
mov dword [edi + 4], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 4], edx
cmp dword [ecx + 0x24], 0
je 0x57023e
mov eax, dword [edi]
and eax, 0xfffed7ff
or eax, 0xd400
mov dword [edi], eax
mov eax, dword [ecx + 0x24]
push edi
call eax
add esp, 4
test eax, eax
mov eax, dword [edi + 0x14]
je 0x570570
and eax, 0x8affffff
mov dword [edi + 4], 0
or eax, 0xa000000
mov dword [edi + 0x14], eax
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
mov dword [ebp - 4], edx
test eax, 0x7f000000
je 0x56f220
mov ebx, dword [ebp - 8]
sub ebx, dword [ebp + 0x10]
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 8]
mov ecx, eax
mov esi, dword [ebp - 0xc]
jmp 0x56f229
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xc]
jmp 0x56f229
mov ecx, dword [edi + 0x14]
and ecx, 0x8cffffff
or ecx, 0xc000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x98ffffff
or ecx, 0x18000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x98ffffff
or ecx, 0x18000000
jmp 0x570821
shl ecx, 0x11
xor ecx, dword [edi]
and ecx, 0xfe0000
xor dword [edi], ecx
mov ecx, dword [edi + 0x14]
and ecx, 0x99ffffff
or ecx, 0x19000000
jmp 0x57081e
mov eax, dword [edi + 0x14]
and eax, 0x85ffffff
or eax, 0x5000000
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi]
and eax, 0xfffeebff
or eax, 0xe800
mov dword [edi], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x14]
and ecx, 0x9effffff
or ecx, 0x1e000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x9cffffff
or ecx, 0x1c000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x9effffff
or ecx, 0x1e000000
jmp 0x570821
mov ecx, dword [edi + 0x14]
and ecx, 0x8effffff
or ecx, 0xe000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x8effffff
or ecx, 0xe000000
jmp 0x570821
mov ecx, dword [edi + 0x14]
and ecx, 0x90ffffff
or ecx, 0x10000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x91ffffff
or ecx, 0x11000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x97ffffff
or ecx, 0x17000000
jmp 0x570821
mov ecx, dword [edi + 0x14]
mov ebx, dword [ebp - 8]
and ecx, 0x9affffff
or ecx, 0x1a000000
jmp 0x570824
mov ecx, dword [edi + 0x14]
mov ebx, dword [ebp - 8]
and ecx, 0x99ffffff
or ecx, 0x19000000
jmp 0x570824
push edi
call fcn.005710e0
add esp, 4
test eax, eax
je 0x570729
test bl, 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x57072e
mov ecx, 1
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x1c], 0
je 0x57077a
shl ecx, 0xa
and ebx, 0xfffe03ff
or ebx, ecx
mov dword [edi], ebx
mov eax, dword [eax + 0x1c]
push edi
call eax
add esp, 4
test eax, eax
mov eax, dword [edi + 0x14]
je 0x570768
and eax, 0x87ffffff
mov dword [edi + 4], 0
or eax, 0x7000000
mov dword [edi + 0x14], eax
mov ebx, dword [edi]
mov ecx, ebx
shr ecx, 0xa
test eax, 0x7f000000
jne 0x570586
shl ecx, 0xa
xor ecx, ebx
mov dword [edi + 4], 0
and ecx, 0x1fc00
xor ecx, ebx
mov dword [edi], ecx
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
pop edi
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
and edx, 0xa1ffffff
shl esi, 0xa
or edx, 0x21000000
xor esi, ebx
mov dword [edi + 0x14], edx
and esi, 0x1fc00
xor esi, ebx
sub ecx, dword [ebp + 0x10]
mov dword [edi], esi
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi]
and eax, 0xfffe03ff
shl edx, 0xa
or eax, edx
mov dword [edi], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
pop edi
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x14]
and ecx, 0x9bffffff
or ecx, 0x1b000000
jmp 0x570821
mov ecx, dword [edi + 0x14]
and ecx, 0x9bffffff
or ecx, 0x1b000000
jmp 0x57081e
mov ecx, dword [edi + 0x14]
and ecx, 0x9dffffff
or ecx, 0x1d000000
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x14], ecx
test ecx, 0x7f000000
jne 0x57083e
mov eax, ecx
and eax, 0xa0ffffff
or eax, 0x20000000
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x10]
shl esi, 0xa
xor esi, dword [edi]
and esi, 0x1fc00
mov dword [edi + 4], eax
xor dword [edi], esi
sub ebx, dword [ebp + 0x10]
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x5708b4
cmp dword [ecx + 0xc], 0
je 0x5708b4
shl edx, 0xa
mov eax, ebx
xor edx, dword [edi]
sub eax, esi
push eax
and edx, 0x1fc00
xor dword [edi], edx
mov eax, dword [ecx + 0xc]
push esi
push edi
call eax
add esp, 0xc
test eax, eax
je 0x5708a2
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x83ffffff
or eax, 0x3000000
mov dword [edi + 0x14], eax
jmp 0x5708a5
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
test eax, 0x7f000000
jne 0x570851
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp + 0xc]
test ecx, ecx
je 0x570912
cmp dword [esi + 0x10], 0
je 0x570912
shl edx, 0xa
mov eax, ebx
xor edx, dword [edi]
sub eax, ecx
push eax
and edx, 0x1fc00
xor dword [edi], edx
mov eax, dword [esi + 0x10]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x5708fc
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [edi + 0x14], eax
jmp 0x5708ff
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
test eax, 0x7f000000
jne 0x570851
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x57096d
cmp dword [esi + 4], 0
je 0x57096d
shl edx, 0xa
mov eax, ebx
xor edx, dword [edi]
sub eax, ecx
push eax
and edx, 0x1fc00
xor dword [edi], edx
mov eax, dword [esi + 4]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x570957
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [edi + 0x14], eax
jmp 0x57095a
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
test eax, 0x7f000000
jne 0x570851
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x5709c8
cmp dword [esi + 0x18], 0
je 0x5709c8
shl edx, 0xa
mov eax, ebx
xor edx, dword [edi]
sub eax, ecx
push eax
and edx, 0x1fc00
xor dword [edi], edx
mov eax, dword [esi + 0x18]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x5709b2
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [edi + 0x14], eax
jmp 0x5709b5
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
and edx, 0x7f
test eax, 0x7f000000
jne 0x570851
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x570a20
cmp dword [esi + 8], 0
je 0x570a20
shl edx, 0xa
mov eax, ebx
xor edx, dword [edi]
sub eax, ecx
push eax
and edx, 0x1fc00
xor dword [edi], edx
mov eax, dword [esi + 8]
push ecx
push edi
call eax
add esp, 0xc
test eax, eax
je 0x570a0d
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x14]
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [edi + 0x14], eax
jmp 0x570a10
mov eax, dword [edi + 0x14]
mov edx, dword [edi]
shr edx, 0xa
test eax, 0x7f000000
jne 0x570851
mov eax, dword [ebp - 0x10]
shl edx, 0xa
xor edx, dword [edi]
and edx, 0x1fc00
mov dword [edi + 4], eax
xor dword [edi], edx
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret