Function at 0x476000
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
mov edi, edx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], edi
mov edx, dword [esi]
mov ebx, edx
mov ecx, dword [esi + 0x14]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 8], ebx
test ecx, 0x7f000000
jne case.0x47604d.1
cmp dword [ebp + 0xc], eax
jne 0x4760a8
lea eax, [ebx - 1]
cmp eax, 0x3c
ja case.0x47604d.3
movzx eax, byte [eax + 0x477ef8]
jmp dword [eax*4 + 0x477eec]
mov eax, dword [edi + 0x1c]
test eax, eax
je case.0x47604d.1
and edx, 0xfffe03ff
shl ebx, 0xa
or edx, ebx
push esi
mov dword [esi], edx
call eax
mov ecx, dword [esi + 0x14]
add esp, 4
test eax, eax
je case.0x47604d.1
and ecx, 0x87ffffff
or ecx, 0x7000000
mov dword [esi + 0x14], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x8bffffff
mov eax, 1
or ecx, 0xb000000
mov dword [esi + 0x14], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
xor edx, edx
cmp ebx, 0x2b
mov eax, ecx
cmovne eax, edx
cmp ebx, 0x30
mov dword [ebp - 0x28], eax
mov eax, ecx
cmovne eax, edx
mov dword [ebp - 0x14], eax
lea eax, [ebx - 0x10]
cmp eax, 0xf
ja case.0x4760d2.17
movzx eax, byte [eax + 0x477f44]
jmp dword [eax*4 + 0x477f38]
mov dword [ebp - 0x24], ecx
jmp case.0x4760d2.17
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp + 0xc]
mov edi, ecx
add edx, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], edx
cmp ecx, edx
je 0x476a1d
mov eax, dword [ebp - 0x28]
mov ecx, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov dl, byte [edi]
mov byte [ebp - 1], dl
cmp ebx, 0x38
jg 0x476140
inc dword [esi + 4]
cmp dword [esi + 4], 0x14000
jbe 0x476140
mov ecx, dword [esi + 0x14]
and ecx, 0x8cffffff
or ecx, 0xc000000
jmp 0x477eb7
mov ebx, dword [ebp - 8]
jmp 0x476140
mov dl, byte [ebp - 1]
mov ecx, dword [ebp - 0xc]
nop dword [eax + eax]
lea eax, [ebx - 1]
cmp eax, 0x3d
ja case.default.0x47614c
jmp dword [eax*4 + 0x477f54]
cmp dl, 0xd
je 0x476a11
cmp dl, 0xa
je 0x476a11
mov eax, dword [esi]
and eax, 0xfffffc03
mov dword [esi + 8], 0xffffffff
mov dword [esi], eax
mov dword [esi + 0xc], 0xffffffff
cmp dl, 0x48
je 0x476917
and eax, 0xfffffffc
mov ebx, 0x12
mov dword [esi], eax
mov dword [ebp - 8], ebx
jmp 0x476140
cmp dl, 0x30
jl 0x4761a2
cmp dl, 0x39
jle 0x47696d
cmp dl, 0xa
je 0x4761b0
cmp dl, 0xd
jne 0x47699d
mov ebx, 0xf
mov dword [ebp - 8], ebx
jmp 0x476140
mov ebx, dword [ebp - 0x1c]
mov eax, edi
test ebx, ebx
cmovne eax, ebx
and dword [esi], 0x80ffffff
mov dword [ebp - 0x1c], eax
mov ebx, 0x10
mov dword [ebp - 8], ebx
cmp dl, 0xd
je 0x476140
cmp dl, 0xa
je 0x476140
mov edx, eax
mov dword [ebp - 0x1c], edx
jmp 0x476a11
cmp dl, 0xd
je 0x476c0c
cmp dl, 0xa
jne 0x4769b0
mov ebx, 0x37
mov dword [ebp - 8], ebx
jmp 0x476140
mov ebx, dword [esi]
shr ebx, 0x11
mov dword [ebp - 0x34], edi
and ebx, 0x7f
nop dword [eax + eax]
cmp edi, ecx
je 0x476c8c
mov dl, byte [edi]
mov byte [ebp - 1], dl
cmp dl, 0xd
je 0x476c19
cmp dl, 0xa
je 0x476598
cmp dword [ebp - 0x38], 0
jl 0x47625c
cmp dl, 9
je 0x47625c
cmp dl, 0x1f
jbe 0x477d21
cmp dl, 0x7f
je 0x477d21
mov dh, dl
or dh, 0x20
cmp ebx, 0x16
ja case.0x476271.1
movzx eax, byte [ebx + 0x47807c]
jmp dword [eax*4 + 0x47804c]
mov eax, dword [ebp + 8]
sub eax, edi
mov edi, 0x14000
add eax, dword [ebp + 0xc]
cmp eax, edi
cmovb edi, eax
push edi
push 0xd
push dword [ebp - 0x20]
call fcn.004d2120
push edi
push 0xa
push dword [ebp - 0x20]
mov dword [ebp - 0x30], eax
call fcn.004d2120
mov edi, eax
add esp, 0x18
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4762d3
test edi, edi
je 0x4762c4
cmp eax, edi
jb 0x4762c4
mov ecx, dword [ebp - 0xc]
dec edi
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
mov ecx, dword [ebp - 0xc]
mov edi, eax
dec edi
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
mov ecx, dword [ebp - 0xc]
test edi, edi
mov eax, ecx
cmovne eax, edi
mov edi, eax
dec edi
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dl, 0x20
je case.0x476271.9
cmp dl, 0x30
jl 0x477d5a
cmp dl, 0x39
jg 0x477d5a
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edi
cmp edi, 0x19999999
ja 0x477d35
jb 0x476326
cmp ecx, 0x99999998
ja 0x477d35
shld edi, ecx, 2
movsx eax, dl
shl ecx, 2
sub eax, 0x30
add dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x2c]
adc dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x30]
shld edi, ecx, 1
cdq
add ecx, ecx
add eax, ecx
mov dword [esi + 8], eax
adc edx, edi
mov edi, dword [ebp - 0x20]
mov dword [esi + 0xc], edx
mov ecx, dword [ebp - 0xc]
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
mov eax, dword [esi]
lea ecx, [eax + 0x1000000]
xor ecx, eax
and ecx, 0x7f000000
xor ecx, eax
mov dword [esi], ecx
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 7
ja 0x47639a
cmp dh, byte [ecx + str.chunked]
jne 0x47639a
cmp ecx, 6
jne 0x476353
inc edi
lea ebx, [ecx + 0xd]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
jmp 0x476220
mov ecx, dword [ebp - 0xc]
xor ebx, ebx
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dh, 0x6b
jne 0x4763bb
inc edi
mov ebx, 0xf
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dh, 0x63
jne 0x4763ce
inc edi
mov ebx, 0x10
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dh, 0x75
jne 0x4763e1
inc edi
mov ebx, 0x11
mov dword [ebp - 0x20], edi
jmp 0x476220
movzx eax, dh
cmp byte [eax + 0x4f4f00], 0
je 0x4763fb
inc edi
mov ebx, 0x12
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dh, 0x20
je case.0x476271.9
xor ebx, ebx
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
mov eax, dword [esi]
lea ecx, [eax + 0x1000000]
xor ecx, eax
and ecx, 0x7f000000
xor ecx, eax
mov dword [esi], ecx
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 0xa
ja 0x476450
cmp dh, byte [ecx + str.keep_alive]
jne 0x476450
cmp ecx, 9
mov ecx, dword [ebp - 0xc]
jne case.0x476271.9
inc edi
mov ebx, 0x14
mov dword [ebp - 0x20], edi
jmp 0x476220
mov ecx, dword [ebp - 0xc]
inc edi
mov ebx, 0x12
mov dword [ebp - 0x20], edi
jmp 0x476220
mov eax, dword [esi]
lea ecx, [eax + 0x1000000]
xor ecx, eax
and ecx, 0x7f000000
xor ecx, eax
mov dword [esi], ecx
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 5
ja 0x476450
cmp dh, byte [ecx + str.close]
jne 0x476450
cmp ecx, 4
mov ecx, dword [ebp - 0xc]
jne case.0x476271.9
inc edi
mov ebx, 0x15
mov dword [ebp - 0x20], edi
jmp 0x476220
mov eax, dword [esi]
lea ecx, [eax + 0x1000000]
xor ecx, eax
and ecx, 0x7f000000
xor ecx, eax
mov dword [esi], ecx
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 7
ja 0x476450
cmp dh, byte [ecx + str.upgrade]
jne 0x476450
cmp ecx, 6
mov ecx, dword [ebp - 0xc]
jne case.0x476271.9
inc edi
mov ebx, 0x16
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dl, 0x2c
jne case.0x476271.9
and dword [esi], 0x80ffffff
mov ebx, 0xe
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
xor ebx, ebx
mov eax, 0x13
cmp dl, 0x20
cmove ebx, eax
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dl, 0x2c
jne 0x47656f
cmp ebx, 0x14
jne 0x476537
or dword [esi], 8
mov ebx, 0xe
and dword [esi], 0x80ffffff
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp ebx, 0x15
jne 0x476553
or dword [esi], 0x10
mov ebx, 0xe
and dword [esi], 0x80ffffff
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp ebx, 0x16
jne 0x47655b
or dword [esi], 0x20
and dword [esi], 0x80ffffff
mov ebx, 0xe
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
cmp dl, 0x20
je case.0x476271.9
inc edi
mov ebx, 0x12
mov dword [ebp - 0x20], edi
jmp 0x476220
xor ebx, ebx
mov dword [ebp - 8], 0x30
inc edi
mov dword [ebp - 0x20], edi
jmp 0x476220
mov eax, 0x32
mov dword [ebp - 8], eax
mov eax, edi
sub eax, dword [ebp - 0x34]
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
ja 0x47611a
shl ebx, 0x11
xor ebx, dword [esi]
and ebx, 0xfe0000
xor ebx, dword [esi]
cmp dword [ebp - 0x14], 0
mov dword [esi], ebx
je 0x476130
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x476739
mov edx, dword [ebp - 0x14]
mov eax, edi
sub eax, edx
and ebx, 0xfffecbff
push eax
push edx
or ebx, 0xc800
push esi
mov dword [esi], ebx
call ecx
jmp 0x4766fd
cmp dl, 0x20
je 0x476666
cmp dl, 9
je 0x476666
mov ecx, dword [esi]
mov eax, ecx
shr eax, 0x11
and eax, 0x7f
add eax, 0xffffffed
cmp eax, 3
ja case.default.0x476617
jmp dword [eax*4 + 0x478094]
or ecx, 8
mov ebx, 0x2a
mov dword [esi], ecx
mov dword [ebp - 8], ebx
jmp 0x476138
or ecx, 0x10
mov ebx, 0x2a
mov dword [esi], ecx
mov dword [ebp - 8], ebx
jmp 0x476138
or ecx, 4
mov ebx, 0x2a
mov dword [esi], ecx
mov dword [ebp - 8], ebx
jmp 0x476138
or ecx, 0x20
mov dword [esi], ecx
mov ebx, 0x2a
mov dword [ebp - 8], ebx
jmp 0x476138
mov ebx, 0x2f
mov dword [ebp - 8], ebx
jmp 0x476140
cmp dl, 0x20
je 0x476cc0
cmp dl, 9
je 0x476cc0
mov ebx, dword [esi]
mov eax, ebx
shr eax, 0x11
mov ecx, ebx
and eax, 0x7f
add eax, 0xffffffed
cmp eax, 3
ja case.default.0x476699
jmp dword [eax*4 + 0x4780a4]
mov ecx, ebx
or ecx, 8
jmp 0x4766ba
mov ecx, ebx
or ecx, 0x10
jmp 0x4766ba
mov ecx, ebx
or ecx, 0x20
jmp 0x4766ba
mov ecx, ebx
or ecx, 4
mov dword [esi], ecx
mov ebx, dword [ebp - 0x14]
mov eax, edi
test ebx, ebx
cmovne eax, ebx
mov ebx, 0x2a
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ebx
test eax, eax
je 0x476138
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x476739
and ecx, 0xfffeabff
mov eax, edi
or ecx, 0xa800
mov dword [esi], ecx
mov ecx, dword [ebp - 0x14]
sub eax, ecx
push eax
push ecx
push esi
call ebx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476714
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477d9a
mov dl, byte [ebp - 1]
mov dword [ebp - 0x14], 0
jmp 0x476138
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
jmp 0x476138
cmp dl, 0xa
jne 0x477dba
mov ecx, dword [esi]
mov eax, ecx
shr eax, 2
test al, 0x10
je 0x4767b5
mov eax, dword [ebp - 0x10]
mov ebx, 0x3e
mov dword [ebp - 8], ebx
mov eax, dword [eax + 0x24]
test eax, eax
je 0x476138
and ecx, 0xfffefbff
or ecx, 0xf800
push esi
mov dword [esi], ecx
call eax
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x47679a
and eax, 0x8affffff
or eax, 0xa000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477d9a
jmp 0x476135
test al, 1
je 0x4767c1
test al, al
js 0x477e0a
and eax, 0x28
mov ebx, 0x38
mov dword [ebp - 8], ebx
cmp al, 0x28
jne 0x4767f8
test cl, 3
je 0x4767e8
mov ecx, dword [esi + 0x14]
cmp cx, 0x65
je 0x4767e8
xor eax, eax
and ecx, 0x7fffffff
jmp 0x47680e
mov ecx, dword [esi + 0x14]
mov eax, 0x80000000
and ecx, 0x7fffffff
jmp 0x47680e
xor ecx, ecx
mov eax, 0x80000000
cmp byte [esi + 0x16], 5
cmove ecx, eax
mov eax, dword [esi + 0x14]
and eax, 0x7fffffff
or ecx, eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x14], ecx
mov eax, dword [eax + 0x14]
test eax, eax
je 0x476846
push esi
call eax
add esp, 4
sub eax, 0
je 0x476843
sub eax, 1
je 0x47683d
sub eax, 1
jne 0x477d7c
or dword [esi + 0x14], 0x80000000
or dword [esi], 0x100
mov dl, byte [ebp - 1]
test dword [esi + 0x14], 0x7f000000
jne 0x477d8c
jmp 0x476138
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
sub eax, edi
add eax, dword [ebp + 0xc]
cdq
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x30], eax
cmp edx, eax
ja 0x47687d
jb 0x476878
cmp ecx, ebx
jae 0x47687d
mov ebx, ecx
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x18], 0
mov eax, edi
cmovne eax, dword [ebp - 0x18]
sub ecx, ebx
mov dword [esi + 8], ecx
sbb edx, dword [ebp - 0x30]
dec edi
add edi, ebx
mov dword [ebp - 0x18], eax
or ecx, edx
mov dword [esi + 0xc], edx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
jne 0x476ccd
mov dl, byte [ebp - 1]
mov ebx, 0x3e
mov dword [ebp - 8], ebx
test eax, eax
je 0x476140
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x47690b
mov eax, dword [esi]
mov edx, dword [ebp - 0x18]
and eax, 0xfffefbff
or eax, 0xf800
mov dword [esi], eax
mov eax, edi
sub eax, edx
inc eax
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x4768f5
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477d9a
mov dword [ebp - 0x18], 0
jmp 0x476135
mov ecx, dword [ebp - 0x10]
mov ebx, 3
mov dword [ebp - 8], ebx
mov ecx, dword [ecx]
test ecx, ecx
je 0x476a0e
and eax, 0xfffe0fff
or eax, 0xc00
mov dword [esi], eax
push esi
call ecx
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476952
and eax, 0x81ffffff
or eax, 0x1000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
jmp 0x476a0e
mov ax, word [esi + 0x14]
mov cx, ax
shl ax, 2
add cx, ax
movsx ax, dl
add cx, cx
sub cx, 0x30
add cx, ax
mov word [esi + 0x14], cx
mov ecx, dword [esi + 0x14]
cmp cx, 0x3e7
ja 0x476e8d
jmp 0x476a0e
cmp dl, 0x20
jne 0x476e8a
mov ebx, 0xf
mov dword [ebp - 8], ebx
jmp 0x476a11
movzx eax, dl
mov bl, byte [eax + 0x4f4f00]
test bl, bl
je 0x477d21
mov ecx, dword [ebp - 0x28]
mov eax, edi
mov edx, dword [esi]
test ecx, ecx
cmovne eax, ecx
mov ecx, edx
mov dword [ebp - 0x28], eax
and ecx, 0x80ffffff
mov eax, 0x2b
mov dword [ebp - 8], eax
movsx eax, bl
add eax, 0xffffff9d
cmp eax, 0x12
ja case.0x4769f6.100
movzx eax, byte [eax + 0x4780c8]
jmp dword [eax*4 + 0x4780b4]
and ecx, 0xff03ffff
or ecx, 0x20000
mov dword [esi], ecx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, ecx
jne 0x476104
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
test edx, edx
je 0x476a71
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x476a71
mov eax, edi
shl ebx, 0xa
xor ebx, dword [esi]
sub eax, edx
push eax
push edx
and ebx, 0x1fc00
xor dword [esi], ebx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476a5b
and eax, 0x83ffffff
or eax, 0x3000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
test eax, 0x7f000000
jne 0x477d9a
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x476abf
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x476abf
mov eax, edi
shl ebx, 0xa
xor ebx, dword [esi]
sub eax, edx
push eax
push edx
and ebx, 0x1fc00
xor dword [esi], ebx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476aac
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
test eax, 0x7f000000
jne 0x477d9a
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
test edx, edx
je 0x476b13
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x476b13
mov eax, edi
shl ebx, 0xa
xor ebx, dword [esi]
sub eax, edx
push eax
push edx
and ebx, 0x1fc00
xor dword [esi], ebx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476afd
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
test eax, 0x7f000000
jne 0x477d9a
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x476b61
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x476b61
mov eax, edi
shl ebx, 0xa
xor ebx, dword [esi]
sub eax, edx
push eax
push edx
and ebx, 0x1fc00
xor dword [esi], ebx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476b4e
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
test eax, 0x7f000000
jne 0x477d9a
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x476baf
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x476baf
mov eax, edi
shl ebx, 0xa
xor ebx, dword [esi]
sub eax, edx
push eax
push edx
and ebx, 0x1fc00
xor dword [esi], ebx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476b9f
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
test eax, 0x7f000000
jne 0x477d9a
mov eax, dword [ebp + 0xc]
shl ebx, 0xa
xor ebx, dword [esi]
and ebx, 0x1fc00
xor dword [esi], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
and ecx, 0x800bffff
or ecx, 0xa0000
jmp 0x476a09
mov ecx, edx
and ecx, 0x800fffff
or ecx, 0xe0000
jmp 0x476a09
mov ecx, edx
and ecx, 0x8011ffff
or ecx, 0x100000
jmp 0x476a09
mov ecx, edx
and ecx, 0x8001ffff
jmp 0x476a09
mov ebx, 0x37
mov dword [ebp - 8], ebx
jmp 0x476a11
mov edx, dword [ebp - 0x14]
mov eax, 0x32
mov dword [ebp - 8], eax
mov eax, ebx
shl eax, 0x11
xor eax, dword [esi]
and eax, 0xfe0000
xor eax, dword [esi]
mov dword [esi], eax
test edx, edx
je 0x476c8c
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x476c84
and eax, 0xfffecbff
or eax, 0xc800
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476c6e
and eax, 0x84ffffff
or eax, 0x4000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 0xa
and ecx, 0x7f
mov dword [ebp - 8], ecx
test eax, 0x7f000000
jne 0x477e8a
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0xc]
shl ebx, 0x11
mov eax, edi
xor ebx, dword [esi]
sub eax, dword [ebp - 0x34]
and ebx, 0xfe0000
xor dword [esi], ebx
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
ja 0x47611a
mov ebx, dword [ebp - 8]
lea eax, [edi - 1]
cmp edi, ecx
cmovne eax, edi
mov edi, eax
jmp 0x476a11
mov ebx, 0x2c
mov dword [ebp - 8], ebx
jmp 0x476a11
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x18], eax
jmp 0x476a11
cmp dl, 0xd
je 0x476a11
cmp dl, 0xa
je 0x476a11
mov ecx, dword [esi + 0x14]
and ecx, 0x8dffffff
or ecx, 0xd000000
jmp 0x477eb7
cmp dl, 0x54
jne 0x476d1a
mov eax, dword [esi]
mov ebx, 6
and eax, 0xfffffffd
mov dword [ebp - 8], ebx
or eax, 1
mov dword [esi], eax
jmp 0x476a11
cmp dl, 0x45
jne 0x477da6
mov eax, dword [esi]
mov ebx, 0x13
and eax, 0x82fffffc
mov byte [esi + 0x16], 2
or eax, 0x2000000
mov dword [ebp - 8], ebx
mov dword [esi], eax
jmp 0x476a11
mov eax, dword [esi]
and eax, 0xfffffc03
mov dword [esi + 8], 0xffffffff
mov dword [esi], eax
mov dword [esi + 0xc], 0xffffffff
cmp dl, 0xa
je 0x476d74
cmp dl, 0xd
je 0x476d74
cmp dl, 0x48
jne 0x477da6
mov ebx, 5
mov dword [ebp - 8], ebx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je 0x476a0e
shl ebx, 0xa
xor ebx, eax
and ebx, 0x1fc00
xor ebx, eax
mov dword [esi], ebx
jmp 0x476938
cmp dl, 0x54
jne 0x477dba
mov ebx, 6
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x54
jne 0x477dba
mov ebx, 7
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x50
jne 0x477dba
mov ebx, 8
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x2f
jne 0x477dba
mov ebx, 9
mov dword [ebp - 8], ebx
jmp 0x476a11
lea eax, [edx - 0x30]
cmp al, 9
ja 0x477dce
movsx ax, dl
mov ebx, 0xa
mov dword [ebp - 8], ebx
sub ax, 0x30
mov word [esi + 0x10], ax
jmp 0x476a11
cmp dl, 0x2e
jne 0x477dce
mov ebx, 0xb
mov dword [ebp - 8], ebx
jmp 0x476a11
lea eax, [edx - 0x30]
cmp al, 9
ja 0x477dce
movsx ax, dl
mov ebx, 0xc
mov dword [ebp - 8], ebx
sub ax, 0x30
mov word [esi + 0x12], ax
jmp 0x476a11
cmp dl, 0x20
jne 0x477dce
mov ebx, 0xd
mov dword [ebp - 8], ebx
jmp 0x476a11
lea eax, [edx - 0x30]
cmp al, 9
ja 0x476e81
movsx ax, dl
mov ebx, 0xe
mov dword [ebp - 8], ebx
sub ax, 0x30
mov word [esi + 0x14], ax
jmp 0x476a11
cmp dl, 0x20
je 0x476a11
mov ecx, dword [esi + 0x14]
and ecx, 0x8fffffff
or ecx, 0xf000000
jmp 0x477eb7
cmp dl, 0xd
jne 0x476f10
mov edx, dword [ebp - 0x1c]
mov ebx, 0x11
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a11
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x476f04
mov eax, dword [esi]
and eax, 0xfffe47ff
or eax, 0x4400
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476eee
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
mov dword [ebp - 0x1c], 0
jmp 0x476a0e
cmp dl, 0xa
jne 0x476a11
mov edx, dword [ebp - 0x1c]
mov ebx, 0x2a
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a11
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x476f7a
mov eax, dword [esi]
and eax, 0xfffeabff
or eax, 0xa800
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476f64
and eax, 0x88ffffff
or eax, 0x8000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x476a0e
cmp dl, 0xa
jne 0x477dba
mov ebx, 0x2a
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xd
je 0x476a11
cmp dl, 0xa
je 0x476a11
mov ecx, dword [esi]
mov al, dl
and ecx, 0xfffffc03
mov dword [esi + 8], 0xffffffff
or al, 0x20
mov dword [esi], ecx
mov dword [esi + 0xc], 0xffffffff
cmp al, 0x61
jb case.0x476ff9.69
cmp al, 0x7a
ja case.0x476ff9.69
and ecx, 0x81ffffff
movsx eax, dl
or ecx, 0x1000000
mov byte [esi + 0x16], 0
add eax, 0xffffffbf
mov dword [esi], ecx
cmp eax, 0x14
ja case.0x476ff9.69
jmp dword [eax*4 + 0x4780dc]
mov byte [esi + 0x16], 0x13
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0x10
jmp case.0x476ff9.68
mov byte [esi + 0x16], 5
jmp case.0x476ff9.68
mov byte [esi + 0x16], 1
jmp case.0x476ff9.68
mov byte [esi + 0x16], 2
jmp case.0x476ff9.68
mov byte [esi + 0x16], 9
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0xa
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0x19
jmp case.0x476ff9.68
mov byte [esi + 0x16], 6
jmp case.0x476ff9.68
mov byte [esi + 0x16], 3
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0x14
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0x1a
jmp case.0x476ff9.68
mov byte [esi + 0x16], 7
jmp case.0x476ff9.68
mov byte [esi + 0x16], 0xf
mov eax, dword [ebp - 0x10]
mov ebx, 0x13
mov dword [ebp - 8], ebx
mov eax, dword [eax]
test eax, eax
je 0x476a0e
and ecx, 0xfffe4fff
or ecx, 0x4c00
push esi
mov dword [esi], ecx
call eax
jmp 0x47693b
test dl, dl
je case.0x476ff9.69
movzx ebx, byte [esi + 0x16]
mov ecx, dword [ebx*4 + 0x4f4e68]
cmp dl, 0x20
jne 0x4770b0
mov eax, dword [esi]
shr eax, 0x18
and eax, 0x7f
cmp byte [eax + ecx], 0
jne 0x4770b0
mov ebx, 0x14
mov dword [ebp - 8], ebx
jmp 0x477238
mov eax, dword [esi]
mov ecx, eax
mov esi, dword [ebx*4 + 0x4f4e68]
shr eax, 0x18
and eax, 0x7f
shr ecx, 0x10
cmp dl, byte [eax + esi]
mov esi, dword [ebp - 0x3c]
je 0x477235
cmp dl, 0x41
jl 0x4770da
cmp dl, 0x5a
jle 0x4770e3
cmp dl, 0x2d
jne case.0x476ff9.69
and ecx, 0x7f00
shl ebx, 0x10
or ecx, ebx
movsx eax, dl
or ecx, eax
cmp ecx, 0xa014f
ja 0x4771b7
je 0x4771b1
cmp ecx, 0x50148
ja 0x477163
je 0x47715a
cmp ecx, 0x30155
ja 0x477145
je 0x47713c
sub ecx, 0x30141
je 0x477133
sub ecx, 0x11
jne case.0x476ff9.69
mov byte [esi + 0x16], 0xc
jmp 0x477235
mov byte [esi + 0x16], 0x1c
jmp 0x477235
mov byte [esi + 0x16], 4
jmp 0x477235
cmp ecx, 0x40252
jne case.0x476ff9.69
mov byte [esi + 0x16], 0x1d
jmp 0x477235
mov byte [esi + 0x16], 0x16
jmp 0x477235
cmp ecx, 0xa012d
ja 0x47719c
je 0x477193
cmp ecx, 0x50250
je 0x47718a
cmp ecx, 0x90149
jne case.0x476ff9.69
mov byte [esi + 0x16], 0x1f
jmp 0x477235
mov byte [esi + 0x16], 8
jmp 0x477235
mov byte [esi + 0x16], 0x18
jmp 0x477235
cmp ecx, 0xa0145
jne case.0x476ff9.69
mov byte [esi + 0x16], 0x17
jmp 0x477235
mov byte [esi + 0x16], 0xb
jmp 0x477235
cmp ecx, 0xf0253
ja 0x477209
je 0x477203
cmp ecx, 0xc0450
ja 0x4771f1
je 0x4771eb
cmp ecx, 0xa0241
je 0x4771e5
cmp ecx, 0xa0341
jne case.0x476ff9.69
mov byte [esi + 0x16], 0x1e
jmp 0x477235
mov byte [esi + 0x16], 0x15
jmp 0x477235
mov byte [esi + 0x16], 0xd
jmp 0x477235
cmp ecx, 0xf0242
jne case.0x476ff9.69
mov byte [esi + 0x16], 0x12
jmp 0x477235
mov byte [esi + 0x16], 0x1b
jmp 0x477235
cmp ecx, 0xf0349
je 0x477231
cmp ecx, 0x140242
je 0x47722b
cmp ecx, 0x1a0145
jne case.0x476ff9.69
mov byte [esi + 0x16], 0xe
jmp 0x477235
mov byte [esi + 0x16], 0x11
jmp 0x477235
mov byte [esi + 0x16], 0x20
mov ebx, dword [ebp - 8]
mov ecx, dword [esi]
lea eax, [ecx + 0x1000000]
xor eax, ecx
and eax, 0x7f000000
xor eax, ecx
mov dword [esi], eax
jmp 0x476a0e
cmp dl, 0x20
je 0x476a11
mov ecx, dword [ebp - 0x24]
mov eax, edi
test ecx, ecx
cmovne eax, ecx
cmp byte [esi + 0x16], 5
mov dword [ebp - 0x24], eax
mov eax, 0x18
cmove ebx, eax
mov ecx, ebx
call fcn.00475db0
mov ebx, eax
mov dword [ebp - 8], ebx
cmp ebx, 1
jne 0x476a0e
mov ecx, dword [esi + 0x14]
and ecx, 0x91ffffff
or ecx, 0x11000000
jmp 0x477eb7
cmp dl, 0xa
je 0x477287
cmp dl, 0xd
je 0x477287
cmp dl, 0x20
je 0x477287
jmp 0x477272
cmp dl, 0xa
je 0x477328
cmp dl, 0xd
je 0x477328
cmp dl, 0x20
jne 0x477272
mov edx, dword [ebp - 0x24]
mov ebx, 0x20
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a11
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x47731c
mov eax, dword [esi]
and eax, 0xfffe83ff
or eax, 0x8000
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477306
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
mov dword [ebp - 0x24], 0
jmp 0x476a0e
xor ebx, ebx
mov dword [esi + 0x10], 0x90000
cmp dl, 0xd
mov edx, dword [ebp - 0x24]
setne bl
add ebx, 0x29
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a11
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x477396
mov eax, dword [esi]
and eax, 0xfffe03ff
shl ebx, 0xa
or ebx, eax
mov eax, edi
sub eax, edx
mov dword [esi], ebx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477380
and eax, 0x82ffffff
or eax, 0x2000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x476a0e
cmp dl, 0x20
je 0x476a11
cmp dl, 0x48
jne 0x477da6
mov ebx, 0x21
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x54
jne 0x477dba
mov ebx, 0x22
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x54
jne 0x477dba
mov ebx, 0x23
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x50
jne 0x477dba
mov ebx, 0x24
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0x2f
jne 0x477dba
mov ebx, 0x25
mov dword [ebp - 8], ebx
jmp 0x476a11
lea eax, [edx - 0x30]
cmp al, 9
ja 0x477dce
movsx ax, dl
mov ebx, 0x26
mov dword [ebp - 8], ebx
sub ax, 0x30
mov word [esi + 0x10], ax
jmp 0x476a11
cmp dl, 0x2e
jne 0x477dce
mov ebx, 0x27
mov dword [ebp - 8], ebx
jmp 0x476a11
lea eax, [edx - 0x30]
cmp al, 9
ja 0x477dce
movsx ax, dl
mov ebx, 0x28
mov dword [ebp - 8], ebx
sub ax, 0x30
mov word [esi + 0x12], ax
jmp 0x476a11
cmp dl, 0xd
jne 0x477487
mov ebx, 0x29
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne 0x477dce
mov ebx, 0x2a
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne 0x477df6
mov ebx, 0x2a
mov dword [ebp - 8], ebx
jmp 0x476a11
mov ecx, edi
mov dword [ebp - 0x34], ecx
cmp edi, dword [ebp - 0xc]
je 0x4776e6
mov dl, byte [edi]
movzx eax, dl
mov bl, byte [eax + 0x4f4f00]
test bl, bl
je 0x4776e0
mov edi, dword [esi]
mov eax, edi
shr eax, 0x11
and eax, 0x7f
dec eax
cmp eax, 0xb
ja case.default.0x4774e8
jmp dword [eax*4 + 0x478130]
lea ecx, [edi + 0x1000000]
xor eax, eax
and ecx, 0x7f000000
cmp bl, 0x6f
mov ebx, 0x40000
cmove eax, ebx
and edi, 0x8001ffff
or ecx, eax
or ecx, edi
mov dword [esi], ecx
jmp case.default.0x4774e8
lea ecx, [edi + 0x1000000]
xor eax, eax
and ecx, 0x7f000000
cmp bl, 0x6e
mov ebx, 0x60000
cmove eax, ebx
and edi, 0x8001ffff
or ecx, eax
or ecx, edi
mov dword [esi], ecx
jmp case.default.0x4774e8
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
cmp bl, 0x6e
je 0x477579
cmp bl, 0x74
je 0x477568
and eax, 0xff01ffff
mov dword [esi], eax
jmp case.default.0x4774e8
and eax, 0xff0dffff
or eax, 0xc0000
mov dword [esi], eax
jmp case.default.0x4774e8
and eax, 0xff09ffff
or eax, 0x80000
mov dword [esi], eax
jmp case.default.0x4774e8
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
mov ecx, eax
mov dword [esi], eax
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 0xa
ja 0x4775ca
cmp bl, byte [ecx + str.connection]
jne 0x4775ca
cmp ecx, 9
jne case.default.0x4774e8
and eax, 0xff13ffff
or eax, 0x120000
mov dword [esi], eax
jmp case.default.0x4774e8
and eax, 0xff01ffff
mov dword [esi], eax
jmp case.default.0x4774e8
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
mov ecx, eax
mov dword [esi], eax
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 0x10
ja 0x4775ca
cmp bl, byte [ecx + str.proxy_connection]
jne 0x4775ca
cmp ecx, 0xf
jmp 0x4775b3
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
mov ecx, eax
mov dword [esi], eax
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 0xe
ja 0x4775ca
cmp bl, byte [ecx + str.content_length]
jne 0x4775ca
cmp ecx, 0xd
jne case.default.0x4774e8
and eax, 0xff15ffff
or eax, 0x140000
mov dword [esi], eax
jmp case.default.0x4774e8
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
mov ecx, eax
mov dword [esi], eax
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 0x11
ja 0x4775ca
cmp bl, byte [ecx + str.transfer_encoding]
jne 0x4775ca
cmp ecx, 0x10
jne case.default.0x4774e8
and eax, 0xff17ffff
or eax, 0x160000
mov dword [esi], eax
jmp case.default.0x4774e8
lea eax, [edi + 0x1000000]
xor eax, edi
and eax, 0x7f000000
xor eax, edi
mov ecx, eax
mov dword [esi], eax
shr ecx, 0x18
and ecx, 0x7f
cmp ecx, 7
ja 0x4775ca
cmp bl, byte [ecx + str.upgrade]
jne 0x4775ca
cmp ecx, 6
jne case.default.0x4774e8
and eax, 0xff19ffff
or eax, 0x180000
mov dword [esi], eax
jmp case.default.0x4774e8
cmp dl, 0x20
je case.default.0x4774e8
and edi, 0xff01ffff
mov dword [esi], edi
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, dword [ebp - 0xc]
jne 0x4774c1
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp - 8]
mov eax, edi
sub eax, ecx
add dword [esi + 4], eax
cmp dword [esi + 4], 0x14000
ja 0x47611a
cmp edi, dword [ebp - 0xc]
jne 0x477705
dec edi
jmp 0x476a0e
cmp dl, 0x3a
jne 0x477d21
mov edx, dword [ebp - 0x28]
mov ebx, 0x2c
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a0e
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x47776f
mov eax, dword [esi]
and eax, 0xfffeb3ff
or eax, 0xb000
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477759
and eax, 0x83ffffff
or eax, 0x3000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x476a0e
cmp dl, 0x20
je 0x476a11
cmp dl, 9
je 0x476a11
cmp dl, 0xd
jne 0x47779d
mov ebx, 0x2d
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne case.0x47614c.47
mov ebx, 0x2e
mov dword [ebp - 8], ebx
jmp 0x476a11
mov ecx, dword [ebp - 0x14]
mov eax, edi
test ecx, ecx
mov bl, dl
cmovne eax, ecx
mov ecx, dword [esi]
mov dword [ebp - 0x14], eax
and ecx, 0x80ffffff
mov eax, 0x30
mov dword [esi], ecx
mov dword [ebp - 8], eax
or bl, 0x20
mov eax, ecx
shr eax, 0x11
and eax, 0x7f
add eax, 0xfffffff7
cmp eax, 5
ja case.0x4777e7.13
jmp dword [eax*4 + 0x478160]
and ecx, 0xff01ffff
or ecx, 0x80
jmp 0x476a09
cmp bl, 0x63
jne case.0x4777e7.13
and ecx, 0xff1bffff
or ecx, 0x1a0000
jmp 0x476a09
cmp dl, 0x30
jl 0x477d68
cmp dl, 0x39
jg 0x477d68
test ecx, 0x200
jne 0x477e0a
movsx eax, dl
or ecx, 0x200
sub eax, 0x30
cdq
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
jmp 0x476a09
cmp bl, 0x6b
jne 0x477865
and ecx, 0xff1fffff
or ecx, 0x1e0000
jmp 0x476a09
cmp bl, 0x63
jne 0x47787b
and ecx, 0xff21ffff
or ecx, 0x200000
jmp 0x476a09
cmp bl, 0x75
jne 0x477891
and ecx, 0xff23ffff
or ecx, 0x220000
jmp 0x476a09
and ecx, 0xff25ffff
or ecx, 0x240000
jmp 0x476a09
and ecx, 0xff01ffff
jmp 0x476a09
cmp dl, 0xa
jne 0x477df6
mov ebx, 0x31
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne 0x477dba
mov ebx, 0x2e
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne 0x477dba
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 2
mov eax, ecx
mov dword [esi + 4], 0
and eax, 1
mov dword [ebp - 0x34], eax
jne 0x477913
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
test edx, edx
jne 0x477908
test eax, eax
je 0x47790f
and eax, edx
cmp eax, 0xffffffff
jne 0x477913
xor edx, edx
jmp 0x477918
mov edx, 1
mov eax, dword [esi + 0x14]
test eax, eax
jns 0x47794e
shr eax, 0x10
cmp al, 5
je 0x477e1e
and ecx, 0x40
jne 0x477e1e
test edx, edx
je 0x477e1e
cmp dword [ebp - 0x34], 0
je 0x4779b3
mov ebx, 0x33
mov dword [ebp - 8], ebx
jmp 0x476a0e
and ecx, 0x40
je 0x47793b
mov ecx, esi
call fcn.00478180
test eax, eax
je 0x477970
test bl, 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x477975
mov ecx, 1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], ecx
mov eax, dword [eax + 0x1c]
test eax, eax
je case.0x4777e7.14
shl ecx, 0xa
and ebx, 0xfffe03ff
or ebx, ecx
push esi
mov dword [esi], ebx
call eax
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476952
and eax, 0x87ffffff
or eax, 0x7000000
jmp 0x47694f
mov ecx, dword [esi + 8]
mov eax, ecx
mov edx, dword [esi + 0xc]
or eax, edx
je 0x477953
and ecx, edx
cmp ecx, 0xffffffff
je 0x4779d3
mov ebx, 0x3c
mov dword [ebp - 8], ebx
jmp 0x476a0e
mov eax, ebx
and eax, 3
mov dword [ebp - 0x34], eax
je 0x477a08
mov eax, dword [esi + 0x14]
movzx ecx, ax
lea eax, [ecx - 0x64]
cmp eax, 0x64
jb 0x477a08
cmp ecx, 0xcc
je 0x477a08
cmp ecx, 0x130
je 0x477a08
mov ebx, 0x3d
mov dword [ebp - 8], ebx
jmp 0x476a0e
mov ecx, esi
call fcn.00478180
test eax, eax
je 0x477970
cmp dword [ebp - 0x34], 0
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x477975
mov eax, dword [ebp - 0x18]
test eax, eax
cmovne edi, eax
mov dword [ebp - 0x18], edi
lea edi, [ecx - 1]
jmp 0x476a11
mov ecx, esi
call fcn.00478180
test eax, eax
je 0x477a5d
test byte [esi], 3
mov ebx, 4
mov eax, 0x12
cmove ebx, eax
jmp 0x477a62
mov ebx, 1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], ebx
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x477aad
mov eax, dword [esi]
and eax, 0xfffe03ff
shl ebx, 0xa
or eax, ebx
push esi
mov dword [esi], eax
call ecx
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477a97
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
cmp dword [esi + 0x14], 0
jge 0x476a0e
mov eax, dword [esi]
and eax, 0xfffe03ff
shl ebx, 0xa
or eax, ebx
sub edi, dword [ebp + 8]
mov dword [esi], eax
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, dl
mov al, byte [eax + 0x4f4d48]
cmp al, 0xff
je 0x477e97
movsx eax, al
mov ebx, 0x34
cdq
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xd
jne 0x477b0c
mov ebx, 0x36
mov dword [ebp - 8], ebx
jmp 0x476a11
movzx eax, dl
mov al, byte [eax + 0x4f4d48]
cmp al, 0xff
jne 0x477b34
cmp dl, 0x3b
je 0x477b27
cmp dl, 0x20
jne 0x477e97
mov ebx, 0x35
mov dword [ebp - 8], ebx
jmp 0x476a11
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp ebx, 0xfffffff
ja 0x477d68
jb 0x477b51
cmp ecx, 0xfffffffe
ja 0x477d68
shld ebx, ecx, 4
movsx eax, al
shl ecx, 4
cdq
add ecx, eax
mov dword [esi + 8], ecx
adc ebx, edx
mov dword [esi + 0xc], ebx
jmp case.0x4777e7.14
cmp dl, 0xd
jne 0x476a11
mov ebx, 0x36
mov dword [ebp - 8], ebx
jmp 0x476a11
cmp dl, 0xa
jne 0x477dba
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
mov dword [esi + 4], 0
jne 0x477ba1
or dword [esi], 0x40
lea ebx, [eax + 0x2a]
jmp 0x477ba6
mov ebx, 0x39
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], ebx
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x476a0e
mov eax, dword [esi]
and eax, 0xfffe03ff
shl ebx, 0xa
or eax, ebx
push esi
mov dword [esi], eax
call ecx
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x476952
and eax, 0x89ffffff
or eax, 0x9000000
jmp 0x47694f
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
sub eax, edi
add eax, dword [ebp + 0xc]
cdq
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x34], eax
cmp edx, eax
ja 0x477c0a
jb 0x477c05
cmp ecx, ebx
jae 0x477c0a
mov ebx, ecx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x18], 0
mov eax, edi
cmovne eax, dword [ebp - 0x18]
sub ecx, ebx
mov dword [esi + 8], ecx
sbb edx, dword [ebp - 0x34]
dec edi
add edi, ebx
mov dword [ebp - 0x18], eax
or ecx, edx
mov dword [esi + 0xc], edx
jne case.0x4777e7.14
mov ebx, 0x3a
mov dword [ebp - 8], ebx
jmp 0x476a0e
cmp dl, 0xd
jne 0x477dba
mov edx, dword [ebp - 0x18]
mov ebx, 0x3b
mov dword [ebp - 8], ebx
test edx, edx
je 0x476a11
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x477ca4
mov eax, dword [esi]
and eax, 0xfffeefff
or eax, 0xec00
mov dword [esi], eax
mov eax, edi
sub eax, edx
push eax
push edx
push esi
call ecx
add esp, 0xc
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477c8e
and eax, 0x86ffffff
or eax, 0x6000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
jne 0x477e8a
mov dword [ebp - 0x18], 0
jmp 0x476a0e
cmp dl, 0xa
jne 0x477dba
mov eax, dword [ebp - 0x10]
mov ebx, 0x33
mov dword [esi + 4], 0
mov dword [ebp - 8], ebx
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x476a0e
mov eax, dword [esi]
and eax, 0xfffecfff
or eax, 0xcc00
push esi
mov dword [esi], eax
call ecx
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477cfe
and eax, 0x8affffff
or eax, 0xa000000
mov dword [esi + 0x14], eax
mov ebx, dword [esi]
shr ebx, 0xa
and ebx, 0x7f
mov dword [ebp - 8], ebx
test eax, 0x7f000000
je 0x476a0e
sub edi, dword [ebp + 8]
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x14]
and ecx, 0x98ffffff
or ecx, 0x18000000
jmp 0x477eb7
mov eax, dword [esi]
mov ecx, dword [esi + 0x14]
and eax, 0xff15ffff
mov edi, dword [ebp - 0x20]
or eax, 0x140000
and ecx, 0x99ffffff
mov dword [esi], eax
or ecx, 0x19000000
jmp 0x477eb7
mov eax, dword [esi]
and eax, 0xff15ffff
or eax, 0x140000
mov dword [esi], eax
mov ecx, dword [esi + 0x14]
and ecx, 0x99ffffff
or ecx, 0x19000000
jmp 0x477eb7
mov eax, dword [esi + 0x14]
and eax, 0x85ffffff
or eax, 0x5000000
mov dword [esi + 0x14], eax
mov eax, dword [esi]
and eax, 0xfffee3ff
or eax, 0xe000
mov dword [esi], eax
sub edi, dword [ebp + 8]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x14]
and ecx, 0x9cffffff
or ecx, 0x1c000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x9effffff
or ecx, 0x1e000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x8effffff
or ecx, 0xe000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x90ffffff
or ecx, 0x10000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x97ffffff
or ecx, 0x17000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x9affffff
or ecx, 0x1a000000
jmp 0x477eb7
mov ecx, esi
call fcn.00478180
test eax, eax
je 0x477e3b
test bl, 3
mov ecx, 4
mov eax, 0x12
cmove ecx, eax
jmp 0x477e40
mov ecx, 1
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x477e7d
shl ecx, 0xa
and ebx, 0xfffe03ff
or ebx, ecx
push esi
mov dword [esi], ebx
call eax
add esp, 4
test eax, eax
mov eax, dword [esi + 0x14]
je 0x477e71
and eax, 0x87ffffff
or eax, 0x7000000
mov dword [esi + 0x14], eax
mov ecx, dword [esi]
shr ecx, 0xa
test eax, 0x7f000000
jne 0x477e8a
shl ecx, 0xa
xor ecx, dword [esi]
and ecx, 0x1fc00
xor dword [esi], ecx
sub edi, dword [ebp + 8]
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x14]
and ecx, 0x9bffffff
or ecx, 0x1b000000
jmp 0x477eb7
mov ecx, dword [esi + 0x14]
and ecx, 0x9dffffff
or ecx, 0x1d000000
mov dword [esi + 0x14], ecx
test ecx, 0x7f000000
jne 0x477ed1
mov eax, ecx
and eax, 0xa0ffffff
or eax, 0x20000000
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 8]
shl eax, 0xa
xor eax, dword [esi]
and eax, 0x1fc00
xor dword [esi], eax
sub edi, dword [ebp + 8]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret