Function at 0x46b1d0
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd8
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0xec]
mov ecx, dword [eax]
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov ebx, dword [edx]
mov edx, ecx
shr edx, 0xb
and edx, 1
mov dword [esp + 0x40], edx
mov esi, ecx
shr esi, 9
and esi, 1
mov edx, esi
xor edx, 1
mov dword [esp + 0xc0], edx
mov edx, 0xfffffffe
xor ebp, ebp
mov dword [esp + 0x60], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], edx
movsx edx, cl
and edx, 1
shl edx, 8
mov edi, dword [esp + 0x108]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0xac], esi
mov dword [esp + 0x70], edx
jmp 0x46b290
movzx edx, byte [eax]
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x10]
add edx, 0x1000
cmp dword [esp + 0x10c], 0
je 0x46b356
cmp ebx, edx
ja 0x46e3fa
mov esi, dword [esp + 0x9c]
cmp ebx, esi
jae 0x46b2c3
mov ebx, esi
mov edx, dword [esp + 0x10c]
mov edx, dword [edx]
mov ebp, ebx
sub ebp, esi
mov esi, 0x7fffffeb
sub esi, edx
cmp esi, ebp
jl 0x46e421
sub edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x10c]
add edx, ebx
mov dword [esi], edx
mov edx, dword [esp + 0x18]
test edx, edx
je 0x46b33b
mov esi, dword [esp + 0xc4]
cmp edx, esi
jbe 0x46b342
mov ecx, ebx
sub ecx, edx
push ecx
push edx
push esi
call fcn.00416980
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x68]
mov edx, esi
sub edx, dword [esp + 0x24]
add esp, 0xc
add ebx, edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x9c], ebx
jmp 0x46b35f
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0xac]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x9c], ebx
jmp 0x46b35f
cmp dword [edi + 0x20], edx
ja 0x46e448
cmp dword [esp + 0x58], 0
je 0x46b428
cmp dword [esp + 0x14], 0
je 0x46b428
cmp dword [esp + 0x14], 0x5c
jne 0x46b3a9
cmp byte [eax + 1], 0x45
jne 0x46b3a9
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
inc eax
xor ecx, ecx
mov dword [esp + 0x10], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x28]
jmp 0x46b290
test ebp, ebp
je 0x46b3ea
cmp dword [esp + 0x10c], 0
jne 0x46b3e2
movzx edx, byte [ebp + 2]
movzx esi, byte [ebp + 3]
shl edx, 8
or edx, esi
mov esi, eax
sub esi, edx
sub esi, dword [edi + 0x18]
mov edx, esi
sar edx, 8
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x5c]
mov byte [ebp + 4], dl
mov dl, byte [esp + 0x50]
mov byte [esi + 5], dl
mov dword [esp + 0x5c], 0
test ecx, 0x4000
je case.0x46b5be.1
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
lea ebp, [ebx + 1]
inc ebp
mov edx, eax
sub edx, dword [edi + 0x18]
mov dword [esp + 0x5c], ebx
sar edx, 8
mov byte [ebp], dl
mov dl, al
sub dl, byte [edi + 0x18]
mov byte [ebp + 2], 0
mov byte [ebp + 1], dl
mov byte [ebp + 3], 0
lea ebx, [ebp + 4]
jmp case.0x46b5be.1
cmp dword [esp + 0x14], 0x2a
je 0x46b5c5
cmp dword [esp + 0x14], 0x2b
je 0x46b5c5
cmp dword [esp + 0x14], 0x3f
je 0x46b5c5
cmp dword [esp + 0x14], 0x7b
jne 0x46b46e
mov eax, dword [esp + 0x10]
inc eax
push eax
call fcn.00435692
mov ecx, dword [esp + 0x2c]
add esp, 4
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x46b5c5
mov dword [esp + 0x3c], 0
test ebp, ebp
je 0x46b4d2
mov edx, dword [esp + 0xa8]
mov ebp, edx
dec edx
mov dword [esp + 0xa8], edx
test ebp, ebp
jg 0x46b4d2
cmp dword [esp + 0x10c], 0
jne 0x46b4ca
mov edx, dword [esp + 0x5c]
movzx ebp, byte [edx + 2]
movzx edx, byte [edx + 3]
shl ebp, 8
or ebp, edx
mov edx, ebp
mov ebp, eax
sub ebp, edx
sub ebp, dword [edi + 0x18]
mov edx, ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x5c]
sar edx, 8
mov byte [ebp + 4], dl
mov dl, byte [esp + 0x50]
mov byte [ebp + 5], dl
mov dword [esp + 0x5c], 0
mov edx, ecx
and edx, 8
mov dword [esp + 0x38], edx
je 0x46b56c
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x14]
test byte [ecx + eax], 1
jne 0x46e3de
mov eax, dword [esp + 0x10]
cmp ecx, 0x23
jne 0x46b568
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
test cl, cl
je 0x46b560
jmp 0x46b510
mov edx, dword [edi + 0x50]
test edx, edx
je 0x46b5d2
mov ecx, dword [edi + 0x1c]
cmp eax, ecx
jae 0x46b5f8
mov eax, dword [esp + 0x40]
push eax
lea eax, [edi + 0x54]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ecx
call fcn.00434aca
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x10]
je 0x46b5f8
mov ecx, dword [edi + 0x54]
cmp byte [eax + ecx - 1], 0
lea eax, [eax + ecx - 1]
mov dword [esp + 0x10], eax
jne 0x46e3de
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x28]
test ecx, 0x4000
je 0x46b5a8
cmp dword [esp + 0x3c], 0
jne 0x46b5a8
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
lea ebp, [ebx + 1]
inc ebp
mov edx, eax
sub edx, dword [edi + 0x18]
mov dword [esp + 0x5c], ebx
sar edx, 8
mov byte [ebp], dl
mov dl, al
sub dl, byte [edi + 0x18]
mov byte [ebp + 2], 0
mov byte [ebp + 1], dl
mov byte [ebp + 3], 0
lea ebx, [ebp + 4]
cmp dword [esp + 0x14], 0x7c
ja case.0x46b5be.1
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + 0x46ea4c]
jmp dword [edx*4 + 0x46ea18]
mov dword [esp + 0x3c], 1
jmp 0x46b4d2
mov edx, dword [edi + 0x54]
mov ebp, dword [edi + 0x1c]
sub ebp, edx
cmp eax, ebp
ja 0x46b5f8
cmp cl, byte [edi + 0x58]
jne 0x46b5f8
cmp edx, 1
je 0x46b54a
mov dl, byte [eax + 1]
cmp dl, byte [edi + 0x59]
je 0x46b54a
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
test cl, cl
jne 0x46b510
jmp 0x46b560
test cl, 2
je 0x46b621
cmp dword [esp + 0x34], 0xfffffffe
jne 0x46b621
mov dword [esp + 0x34], 0xffffffff
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [ebx], 0x1a
inc ebx
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [ebx], 0x1b
inc ebx
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x34]
cmp eax, 0xfffffffe
jne 0x46b681
or eax, 0xffffffff
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
movsx eax, cl
mov ecx, dword [esp + 0x28]
and eax, 4
or eax, 0x30
shr eax, 2
mov byte [ebx], al
mov dword [esp + 0x18], ebx
inc ebx
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
test dword [edi + 0x40], 0x2000000
jne 0x46e4ed
cmp dword [esp + 0x40], 0
mov dl, byte [esp + 0x14]
mov ebp, 1
mov byte [esp + 0xb0], dl
je 0x46b71d
cmp dword [esp + 0x14], 0xc0
jl 0x46b71d
mov dl, byte [eax + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x46b71d
jmp 0x46b700
movzx edx, byte [eax + 1]
inc eax
mov byte [esp + ebp + 0xb0], dl
movzx edx, byte [eax + 1]
and dl, 0xc0
inc ebp
mov dword [esp + 0x10], eax
cmp dl, 0x80
je 0x46b700
movsx eax, cl
and eax, 1
or al, 0x1c
mov dword [esp + 0x18], ebx
mov byte [ebx], al
inc ebx
test ebp, ebp
jle 0x46b744
push ebp
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.004135d0
add esp, 0xc
add ebx, ebp
mov cl, byte [esp + 0xb0]
cmp cl, 0xd
je 0x46b755
cmp cl, 0xa
jne 0x46b759
or dword [edi + 0x44], 0x20
mov eax, dword [esp + 0x34]
cmp eax, 0xfffffffe
jne 0x46e3b7
mov edx, dword [esp + 0x48]
or eax, 0xffffffff
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], edx
cmp ebp, 1
je 0x46e39e
cmp dword [esp + 0x70], 0
je 0x46e39e
mov dword [esp + 0x34], eax
jmp 0x46e3da
mov cl, byte [eax + 1]
mov dword [esp + 0x18], ebx
cmp cl, 0x3a
je 0x46b7a8
cmp cl, 0x2e
je 0x46b7a8
cmp cl, 0x3d
jne 0x46b7c9
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x98]
push ecx
push edx
call fcn.00434d26
add esp, 8
test eax, eax
jne 0x46e514
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x46b7d0
movzx ebp, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
cmp ebp, 0x5c
jne 0x46b801
inc eax
cmp byte [eax], 0x45
je 0x46b7d0
push 3
push 0x48b4b4
push eax
call fcn.00415e08
add esp, 0xc
test eax, eax
jne 0x46b860
mov eax, dword [esp + 0x10]
add eax, 3
jmp 0x46b7d0
test esi, esi
jne 0x46b80f
cmp ebp, 0x5e
jne 0x46b80f
lea esi, [ebp - 0x5d]
jmp 0x46b7d0
mov dword [esp + 0x24], esi
cmp ebp, 0x5d
jne 0x46b864
test dword [edi + 0x40], 0x2000000
je 0x46b864
neg esi
sbb esi, esi
and esi, 0xffffffa0
add esi, 0x6d
mov eax, esi
mov byte [ebx], al
mov eax, dword [esp + 0x34]
inc ebx
cmp eax, 0xfffffffe
jne 0x46b840
or eax, 0xffffffff
mov dword [esp + 0x34], eax
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
jmp 0x46b290
mov dword [esp + 0x24], esi
xor esi, esi
push 0x20
lea eax, [esp + 0x78]
push esi
push eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x58], 0xffffffff
call fcn.00414fc0
mov dword [esp + 0x44], esi
add esp, 0xc
lea esi, [ebx + 4]
mov dword [esp + 0x64], esi
test ebp, ebp
je 0x46e5e5
lea esp, [esp]
cmp dword [esp + 0x40], 0
je 0x46b917
cmp ebp, 0x7f
jle 0x46b917
mov ecx, dword [esp + 0x10]
movzx ebp, byte [ecx]
cmp ebp, 0xc0
jl 0x46b917
mov edx, ebp
and edx, 0x3f
movzx eax, byte [edx + 0x484750]
mov edx, dword [eax*4 + 0x484734]
and edx, ebp
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
mov dword [esp + 0x50], eax
mov ebp, edx
mov edx, 1
cmp eax, edx
mov dword [esp + 0x30], edx
jl 0x46b913
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x50]
and edx, 0x3f
sub ecx, 6
shl edx, cl
or ebp, edx
mov edx, dword [esp + 0x30]
inc edx
cmp edx, eax
mov dword [esp + 0x30], edx
jle 0x46b8f0
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x46b92c
mov ecx, esi
mov esi, dword [esp + 0x64]
sub ecx, esi
add dword [eax], ecx
cmp dword [esp + 0x58], 0
je 0x46b95e
cmp ebp, 0x5c
jne 0x46bf95
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0x45
jne 0x46bf95
mov eax, edx
inc eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x10], eax
jmp 0x46c2de
cmp ebp, 0x5b
jne 0x46bafa
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x46b97e
cmp al, 0x2e
je 0x46b97e
cmp al, 0x3d
jne 0x46bf95
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x98]
push edx
push eax
call fcn.00434d26
add esp, 8
test eax, eax
je 0x46bf95
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0x3a
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], ecx
jne 0x46e549
add eax, 2
cmp byte [eax], 0x5e
mov dword [esp + 0x10], eax
jne 0x46b9d7
mov ecx, 1
add eax, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x98]
sub edx, eax
push edx
push eax
call fcn.00434cd6
add esp, 8
test eax, eax
jl 0x46e570
test byte [esp + 0x28], 1
je 0x46ba04
cmp eax, 2
jg 0x46ba04
xor eax, eax
lea ebp, [eax + eax*2]
mov eax, dword [ebp*4 + 0x485358]
add eax, dword [esp + 0x3c]
push 0x20
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.004135d0
mov ecx, dword [ebp*4 + 0x48535c]
mov ebp, dword [ebp*4 + 0x485360]
add esp, 0xc
test ecx, ecx
jl 0x46ba72
mov edx, dword [esp + 0x3c]
xor eax, eax
add ecx, edx
test ebp, ebp
jl 0x46ba60
mov dl, byte [ecx + eax]
or byte [esp + eax + 0xc8], dl
inc eax
cmp eax, 0x20
jl 0x46ba43
jmp 0x46ba72
mov dl, byte [ecx + eax]
not dl
and byte [esp + eax + 0xc8], dl
inc eax
cmp eax, 0x20
jl 0x46ba60
test ebp, ebp
jge 0x46ba78
neg ebp
cmp ebp, 1
jne 0x46ba87
and byte [esp + 0xc9], 0xc3
jmp 0x46ba94
cmp ebp, 2
jne 0x46ba94
and byte [esp + 0xd3], 0x7f
xor eax, eax
cmp dword [esp + 0x30], eax
je 0x46bad0
lea esp, [esp]
mov cl, byte [esp + eax + 0xc8]
not cl
or byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x20
jl 0x46baa0
mov eax, dword [esp + 0x98]
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0xa
jmp 0x46c2de
mov dl, byte [esp + eax + 0xc8]
or byte [esp + eax + 0x74], dl
inc eax
cmp eax, 0x20
jl 0x46bad0
mov eax, dword [esp + 0x98]
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0xa
jmp 0x46c2de
cmp ebp, 0x5c
jne 0x46bf95
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 0x30]
mov eax, dword [esp + 0xf8]
push 1
push ecx
push edx
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0043571a
mov edx, dword [esp + 0x10c]
add esp, 0x14
cmp dword [edx], 0
mov ebp, eax
jne 0x46e9e8
mov ecx, ebp
neg ecx
cmp ecx, 5
jne 0x46bb46
lea ebp, [ecx + 3]
jmp 0x46bf95
cmp ecx, 0x16
jne 0x46bb53
lea ebp, [ecx + 0x42]
jmp 0x46bf95
cmp ecx, 0x11
jne 0x46bb60
lea ebp, [ecx + 0x41]
jmp 0x46bf95
cmp ecx, 0x1a
jne 0x46bb8e
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0x5c
jne 0x46bb81
cmp byte [eax + 2], 0x45
jne 0x46bb81
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x46c2de
mov dword [esp + 0x58], 1
jmp 0x46c2de
cmp ecx, 0x19
je 0x46c2de
test ebp, ebp
jge 0x46bf95
add dword [esp + 0x20], 2
cmp dword [esp + 0x10c], 0
mov eax, dword [edi + 8]
jne 0x46bc9c
lea edx, [ecx - 6]
cmp edx, 5
ja case.default.0x46bbc1
jmp dword [edx*4 + 0x46eacc]
xor ebp, ebp
lea ebx, [ebx]
mov cl, byte [eax + ebp + 0x40]
or byte [esp + ebp + 0x74], cl
inc ebp
cmp ebp, 0x20
jl 0x46bbd0
jmp 0x46c2de
mov dword [esp + 0x1c], 1
xor ebp, ebp
lea ecx, [ecx]
mov dl, byte [eax + ebp + 0x40]
not dl
or byte [esp + ebp + 0x74], dl
inc ebp
cmp ebp, 0x20
jl 0x46bbf0
jmp 0x46c2de
xor ebp, ebp
jmp 0x46bc10
mov cl, byte [eax + ebp + 0xa0]
or byte [esp + ebp + 0x74], cl
inc ebp
cmp ebp, 0x20
jl 0x46bc10
jmp 0x46c2de
mov dword [esp + 0x1c], 1
xor ebp, ebp
mov dl, byte [eax + ebp + 0xa0]
not dl
or byte [esp + ebp + 0x74], dl
inc ebp
cmp ebp, 0x20
jl 0x46bc30
jmp 0x46c2de
lea ecx, [esp + 0x74]
xor ebp, ebp
sub eax, ecx
lea ecx, [esp + ebp + 0x74]
mov dl, byte [eax + ecx]
or byte [ecx], dl
inc ebp
cmp ebp, 0x20
jl 0x46bc50
and byte [esp + 0x75], 0xf7
jmp 0x46c2de
lea edx, [esp + 0x74]
xor ecx, ecx
mov dword [esp + 0x1c], 1
sub eax, edx
lea esp, [esp]
lea ebp, [esp + ecx + 0x74]
mov dl, byte [eax + ebp]
not dl
or byte [ebp], dl
inc ecx
cmp ecx, 0x20
jl 0x46bc80
or byte [esp + 0x75], 8
jmp 0x46c2de
cmp ebp, 0xfffffff9
je 0x46c2de
cmp ebp, 0xfffffffa
je 0x46c2de
cmp ebp, 0xfffffff5
je 0x46c2de
cmp ebp, 0xfffffff6
je 0x46c2de
cmp ebp, 0xfffffff7
je 0x46c2de
cmp ebp, 0xfffffff8
je 0x46c2de
cmp ecx, 0x13
jne 0x46bd7b
or byte [esp + 0x75], 2
or byte [esp + 0x78], 1
or byte [esp + 0x88], 1
cmp dword [esp + 0x40], 0
je 0x46c2de
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [esp + 0x40], 1
call fcn.0043492f
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0043492f
add esi, eax
push esi
push 0x200a
call fcn.0043492f
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0043492f
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0043492f
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0043492f
add esp, 0x38
add esi, eax
jmp 0x46c2de
cmp ecx, 0x12
jne 0x46bea2
xor eax, eax
mov ecx, eax
sub ecx, 1
mov edx, 0xff
je 0x46bda3
sub ecx, 3
je 0x46bd9c
sub ecx, 0x10
jne 0x46bda8
mov edx, 0xfe
jmp 0x46bda8
mov edx, 0xfd
or byte [esp + eax + 0x74], dl
inc eax
cmp eax, 0x20
jl 0x46bd86
cmp dword [esp + 0x40], 0
je 0x46c2de
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [esp + 0x40], 1
call fcn.0043492f
add esi, eax
push esi
push 0x167f
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0043492f
add esi, eax
push esi
push 0x180d
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0043492f
add esi, eax
push esi
push 0x1fff
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0043492f
add esi, eax
push esi
push 0x202e
call fcn.0043492f
add esi, eax
mov byte [esi], 2
add esp, 0x40
inc esi
push esi
push 0x2030
call fcn.0043492f
add esi, eax
push esi
push 0x205e
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0043492f
add esi, eax
push esi
push 0x2fff
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0043492f
add esi, eax
push esi
push accept
call fcn.0043492f
add esp, 0x30
add esi, eax
jmp 0x46c2de
cmp ecx, 0x15
jne 0x46beed
or byte [esp + 0x75], 0x3c
or byte [esp + 0x84], 0x20
cmp dword [esp + 0x40], 0
je 0x46c2de
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [esp + 0x40], 1
call fcn.0043492f
add esi, eax
push esi
push 0x2029
call fcn.0043492f
add esp, 0x10
add esi, eax
jmp 0x46c2de
cmp ecx, 0x14
jne 0x46bf7e
xor eax, eax
jmp 0x46bf00
mov ecx, eax
sub ecx, 1
mov edx, 0xff
je 0x46bf18
sub ecx, 0xf
jne 0x46bf1d
mov edx, 0xdf
jmp 0x46bf1d
mov edx, 0xc3
or byte [esp + eax + 0x74], dl
inc eax
cmp eax, 0x20
jl 0x46bf00
cmp dword [esp + 0x40], 0
je 0x46c2de
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [esp + 0x40], 1
call fcn.0043492f
add esi, eax
push esi
push 0x2027
call fcn.0043492f
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0043492f
add esi, eax
push esi
push accept
call fcn.0043492f
add esp, 0x20
add esi, eax
jmp 0x46c2de
test byte [esp + 0x28], 0x40
jne 0x46e597
mov eax, dword [esp + 0x10]
sub dword [esp + 0x20], 2
movzx ebp, byte [eax]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp byte [eax + 1], 0x5c
jne 0x46bfb8
cmp byte [eax + 2], 0x45
jne 0x46bfb4
add eax, 2
cmp byte [eax + 1], 0x5c
mov dword [esp + 0x58], ecx
je 0x46bfa1
mov dword [esp + 0x10], eax
mov dword [esp + 0x60], eax
cmp ebp, 0xd
je 0x46bfc6
cmp ebp, 0xa
jne 0x46bfca
or dword [edi + 0x44], 0x20
cmp dword [esp + 0x58], ecx
jne 0x46c25f
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 1], 0x2d
jne 0x46c25f
mov eax, ecx
add eax, 2
cmp byte [eax], 0x5c
mov dword [esp + 0x10], eax
jne 0x46c03a
cmp byte [eax + 1], 0x45
jne 0x46c000
add eax, 2
cmp byte [eax], 0x5c
je 0x46bff0
jmp 0x46c036
cmp byte [eax], 0x5c
mov dword [esp + 0x10], eax
jne 0x46c03a
lea esp, [esp]
cmp byte [eax + 1], 0x51
jne 0x46c036
add eax, 2
cmp byte [eax], 0x5c
jne 0x46c02e
cmp byte [eax + 1], 0x45
jne 0x46c02e
add eax, 2
cmp byte [eax], 0x5c
je 0x46c010
jmp 0x46c036
mov dword [esp + 0x58], 1
mov dword [esp + 0x10], eax
mov al, byte [eax]
test al, al
je 0x46c257
cmp dword [esp + 0x58], 0
jne 0x46c053
cmp al, 0x5d
je 0x46c257
cmp dword [esp + 0x40], 0
je 0x46c0cb
movzx edx, al
cmp edx, 0xc0
mov dword [esp + 0x14], edx
jl 0x46c0d2
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x484750]
mov dword [esp + 0x3c], eax
lea ecx, [eax + eax*2]
mov eax, dword [eax*4 + 0x484734]
and eax, edx
mov edx, dword [esp + 0x3c]
add ecx, ecx
shl eax, cl
mov dword [esp + 0x14], eax
mov eax, 1
cmp edx, eax
mov dword [esp + 0x30], eax
jl 0x46c0c5
mov edi, edi
mov edx, dword [esp + 0x10]
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x3c]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, edx
mov dword [esp + 0x30], eax
jle 0x46c0a0
add dword [esp + 0x10], edx
jmp 0x46c0d2
movzx ecx, al
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x58], 0
jne 0x46c14b
cmp dword [esp + 0x14], 0x5c
jne 0x46c14b
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xf8]
push 1
push edx
push eax
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0043571a
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10c]
add esp, 0x14
cmp dword [eax], 0
jne 0x46e9e8
mov eax, dword [esp + 0x14]
test eax, eax
jge 0x46c14b
cmp eax, 0xfffffffb
jne 0x46c12b
mov dword [esp + 0x14], 8
jmp 0x46c14b
cmp eax, 0xffffffea
jne 0x46c13a
mov dword [esp + 0x14], 0x58
jmp 0x46c14b
cmp eax, 0xffffffef
jne 0x46c24d
mov dword [esp + 0x14], 0x52
mov eax, dword [esp + 0x14]
cmp eax, ebp
jl 0x46e5be
je 0x46c25f
cmp eax, 0xd
je 0x46c167
cmp eax, 0xa
jne 0x46c16b
or dword [edi + 0x44], 0x20
cmp dword [esp + 0x40], 0
je 0x46c1ca
cmp eax, 0xff
jg 0x46c185
test byte [esp + 0x28], 1
je 0x46c1ca
cmp eax, 0x7f
jle 0x46c1ca
mov byte [esi], 2
inc esi
push esi
push ebp
mov dword [esp + 0x40], 1
call fcn.0043492f
mov edx, dword [esp + 0x1c]
add esi, eax
push esi
push edx
call fcn.0043492f
add esp, 0x10
add esi, eax
test byte [esp + 0x28], 1
je 0x46c2de
cmp ebp, 0x7f
jg 0x46c2de
mov dword [esp + 0x14], 0x7f
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, eax
sub ecx, ebp
cmp dword [esp + 0x10c], 0
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], eax
jne 0x46c2de
cmp ebp, dword [esp + 0x14]
jg 0x46c2de
mov eax, dword [esp + 0x28]
and eax, 1
mov dword [esp + 0x50], eax
mov eax, ebp
cdq
and edx, 7
add eax, edx
mov ecx, ebp
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [esp + eax + 0x74]
or byte [eax], dl
cmp dword [esp + 0x50], 0
je 0x46c241
mov eax, dword [edi + 4]
movzx ecx, byte [eax + ebp]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [esp + eax + 0x74]
or byte [eax], dl
inc ebp
cmp ebp, dword [esp + 0x14]
jle 0x46c201
jmp 0x46c2de
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x10], ecx
jmp 0x46c25f
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x40], 0
je 0x46c294
cmp ebp, 0xff
jg 0x46c27a
test byte [esp + 0x28], 1
je 0x46c294
cmp ebp, 0x7f
jle 0x46c294
mov byte [esi], 1
inc esi
push esi
push ebp
mov dword [esp + 0x40], 1
call fcn.0043492f
add esp, 8
add esi, eax
jmp 0x46c2de
mov eax, ebp
cdq
and edx, 7
add eax, edx
mov ecx, ebp
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [esp + eax + 0x74]
or byte [eax], dl
test byte [esp + 0x28], 1
je 0x46c2d6
mov eax, dword [edi + 4]
movzx ebp, byte [eax + ebp]
mov eax, ebp
cdq
and edx, 7
add eax, edx
mov ecx, ebp
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [esp + eax + 0x74]
or byte [eax], dl
inc dword [esp + 0x20]
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x10]
movzx ebp, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x46e5e5
cmp ebp, 0x5d
jne 0x46b8a0
cmp dword [esp + 0x58], 0
jne 0x46b8a0
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp ebp, 1
jne 0x46c33f
cmp dword [esp + 0x38], 0
jne 0x46c33f
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46c3bb
test ecx, ecx
je 0x46c3bb
mov edx, dword [esp + 0x4c]
cmp edx, 0x80
jl 0x46c3bf
mov eax, dword [esp + 0x34]
cmp eax, 0xfffffffe
jne 0x46c34f
or eax, 0xffffffff
mov dword [esp + 0x34], eax
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], edx
je 0x46c473
cmp dword [esp + 0x1c], 0
jne 0x46c473
mov byte [esi], 0
mov byte [ebx], 0x50
add ebx, 3
xor eax, eax
inc esi
test ecx, ecx
setne al
mov byte [ebx], al
test ebp, ebp
jle 0x46c440
or al, 2
mov byte [ebx], al
inc ebx
mov eax, esi
sub eax, ebx
push eax
lea ecx, [ebx + 0x20]
push ebx
push ecx
call fcn.00416980
push 0x20
lea edx, [esp + 0x84]
push edx
push ebx
call fcn.004135d0
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x46c442
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x60], esi
test ecx, ecx
je 0x46c402
mov eax, dword [esp + 0x34]
cmp eax, 0xfffffffe
jne 0x46c3db
or eax, 0xffffffff
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [ebx], 0x1e
inc ebx
mov byte [ebx], dl
inc ebx
inc dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
jmp 0x46b290
test eax, eax
je 0x46c42b
cmp edx, 0x7f
jle 0x46c42b
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0xb0]
push eax
push ecx
call fcn.0043492f
mov ecx, dword [esp + 0x30]
add esp, 8
mov ebp, eax
jmp 0x46b71d
mov ecx, dword [esp + 0x28]
mov byte [esp + 0xb0], dl
mov ebp, 1
jmp 0x46b71d
mov ebx, esi
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov ecx, ebx
sub ecx, eax
sar ecx, 8
mov dl, bl
sub dl, al
inc dword [esp + 0x10]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x28]
mov byte [eax + 2], dl
mov eax, dword [esp + 0x10]
jmp 0x46b290
xor eax, eax
cmp ecx, dword [esp + 0x1c]
setne al
inc ebx
add eax, 0x4e
mov byte [ebx - 1], al
test ecx, ecx
je 0x46c4cc
cmp dword [esp + 0x10c], 0
jne 0x46c4dc
lea esi, [esp + 0x74]
mov eax, ebx
sub esi, ebx
mov ebp, 0x20
mov edi, edi
mov cl, byte [esi + eax]
not cl
mov byte [eax], cl
inc eax
sub ebp, 1
jne 0x46c4a0
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
add ebx, 0x20
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
push 0x20
lea edx, [esp + 0x78]
push edx
push ebx
call fcn.004135d0
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
add ebx, 0x20
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
cmp dword [esp + 0x3c], 0
je case.0x46b5be.1
mov ebp, dword [esp + 0xf8]
mov edx, dword [esp + 0x10]
push ebp
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x4c]
push ecx
inc edx
push edx
call fcn.004355ef
add esp, 0x10
cmp dword [ebp], 0
mov dword [esp + 0x10], eax
jne 0x46e9e8
jmp 0x46c562
mov dword [esp + 0x2c], 0xffffffff
jmp 0x46c55a
mov dword [esp + 0x44], 1
mov dword [esp + 0x2c], 0xffffffff
jmp 0x46c562
mov dword [esp + 0x2c], 1
mov dword [esp + 0x44], 0
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
test ebp, ebp
je 0x46e60c
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x46c58a
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
sub eax, edx
neg eax
sbb eax, eax
and eax, 0x200
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], eax
mov al, byte [ecx + 1]
mov dword [esp + 0x3c], ebp
cmp al, 0x2b
jne 0x46c5c3
xor eax, eax
inc ecx
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], ecx
jmp 0x46c5d7
cmp al, 0x3f
jne 0x46c5d5
mov eax, dword [esp + 0xc0]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x46c5d7
mov eax, esi
mov cl, byte [ebp]
mov dword [esp + 0x20], eax
cmp cl, 0x1c
je 0x46cbd1
cmp cl, 0x1d
je 0x46cbd1
cmp cl, 0x1e
jne 0x46c64a
cmp dword [esp + 0x24], 0
movzx edx, byte [ebp + 1]
mov dword [esp + 0x38], 0xd
mov dword [esp + 0x14], edx
jne 0x46cc88
cmp dword [esp + 0x2c], 0
jge 0x46cc88
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
push edi
push eax
mov eax, dword [esp + 0x1c]
inc ecx
push ecx
push 0
push edx
push eax
push 0x1e
call fcn.0044276f
add esp, 0x1c
test eax, eax
je 0x46cc88
jmp 0x46cc78
cmp cl, 0x17
jae 0x46c690
cmp dword [esp + 0x24], 0
movzx ecx, cl
mov dword [esp + 0x38], 0x1a
mov dword [esp + 0x14], ecx
jne 0x46cc88
cmp dword [esp + 0x2c], 0
jge 0x46cc88
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
push edi
push edx
mov edx, dword [esp + 0x1c]
inc eax
push eax
push 0
push ecx
push 0
push edx
jmp 0x46c635
cmp cl, 0x4e
je 0x46cb30
cmp cl, 0x4f
je 0x46cb30
cmp cl, 0x50
je 0x46cb30
cmp cl, 0x51
je 0x46cb30
cmp cl, 0x5e
je 0x46c6f8
cmp cl, 0x5f
je 0x46c6f8
cmp cl, 0x5d
je 0x46c6f8
cmp cl, 0x60
je 0x46c6f8
cmp cl, 0x6d
je 0x46d16f
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0xb
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
xor esi, esi
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], esi
cmp cl, 0x60
jne 0x46c719
cmp byte [ebp + 3], 0x66
je 0x46e633
cmp edx, 0xffffffff
jne 0x46c73d
mov edi, edi
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
add ebp, eax
cmp byte [ebp], 0x55
jne 0x46c720
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
cmp eax, esi
jne 0x46c83a
cmp edx, 1
mov byte [ebx], 0
jg 0x46c7d9
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
push edx
push edi
push eax
push 1
push ecx
call fcn.004430b3
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
push edx
lea ebp, [eax + 1]
push eax
push ebp
call fcn.00416980
add esp, 0x20
inc ebx
cmp dword [esp + 0x2c], esi
jne 0x46c7bb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [eax], 0x6f
mov eax, dword [esp + 0x50]
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov cl, byte [esp + 0x20]
mov edx, dword [esp + 0x18]
add cl, 0x67
dec dword [esp + 0x2c]
mov byte [edx], cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
jmp 0x46c92c
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
push eax
push edi
push ecx
push 4
push edx
call fcn.004430b3
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x30]
push eax
add eax, 4
push eax
call fcn.00416980
mov cl, byte [esp + 0x40]
mov eax, dword [esp + 0x38]
add cl, 0x67
mov byte [eax], cl
inc eax
mov byte [eax], 0x5e
inc eax
mov dword [esp + 0x34], eax
mov byte [eax], 0
mov byte [eax + 1], 0
add eax, 2
add esp, 0x20
add ebx, 4
dec dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x46c92c
cmp eax, 1
jle 0x46c91c
mov edx, dword [esp + 0x10c]
test edx, edx
je 0x46c891
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x64], eax
imul eax, dword [esp + 0x54]
fild dword [esp + 0x64]
fimul dword [esp + 0x54]
mov ecx, eax
fcomp qword [0x48b588]
fnstsw ax
test ah, 0x41
je 0x46e65a
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e65a
add ecx, eax
mov dword [edx], ecx
jmp 0x46c91c
cmp dword [esp + 0xa4], 0
je 0x46c8aa
cmp dword [esp + 0x48], 0
jge 0x46c8aa
mov edx, dword [esp + 0x34]
mov dword [esp + 0x48], edx
cmp dword [esp + 0x44], 1
jle 0x46c91c
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x30], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov esi, dword [edi + 0x20]
push ecx
push edx
push ebx
call fcn.004135d0
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp ebp, esi
jae 0x46c90f
movzx ecx, byte [ebp]
movzx edx, byte [ebp + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [edi + 0x20]
add ecx, eax
sar ecx, 8
mov byte [edx], cl
mov cl, byte [ebp + 1]
mov edx, dword [edi + 0x20]
add cl, al
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
add ebp, 2
cmp ebp, esi
jb 0x46c8e2
add ebx, eax
sub dword [esp + 0x30], 1
mov dword [esp + 0x68], esi
jne 0x46c8c0
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x46c92e
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jl 0x46caae
mov edx, dword [esp + 0x10c]
test edx, edx
je 0x46c989
test ecx, ecx
jle 0x46c989
mov eax, dword [esp + 0x54]
add eax, 7
mov dword [esp + 0x64], eax
imul eax, ecx
fild dword [esp + 0x64]
fimul dword [esp + 0x2c]
sub eax, 6
mov ecx, eax
fcomp qword [0x48b588]
fnstsw ax
test ah, 0x41
je 0x46e421
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e421
add ecx, eax
mov dword [edx], ecx
jmp 0x46ca5f
add ecx, 0xffffffff
mov dword [esp + 0x1c], ecx
js 0x46ca5f
mov al, byte [esp + 0x20]
add al, 0x67
mov byte [esp + 0x6f], al
mov eax, dword [edi + 0x20]
mov cl, byte [esp + 0x6f]
mov byte [ebx], cl
inc ebx
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
je 0x46c9da
mov ecx, dword [esp + 0x14]
mov byte [ebx], 0x5e
inc ebx
test ecx, ecx
jne 0x46c9c5
xor eax, eax
jmp 0x46c9c9
mov eax, ebx
sub eax, ecx
mov edx, eax
sar edx, 8
mov dword [esp + 0x14], ebx
mov byte [ebx], dl
mov byte [ebx + 1], al
add ebx, 2
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push ebx
call fcn.004135d0
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x44]
mov edx, esi
add esp, 0xc
cmp edx, dword [esp + 0x20]
jae 0x46ca4a
lea ecx, [ecx]
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
mov ebp, dword [esp + 0x1c]
neg ebp
sbb ebp, ebp
shl eax, 8
or eax, edx
mov edx, dword [edi + 0x20]
add eax, ecx
and ebp, 3
inc ebp
add eax, ebp
sar eax, 8
mov byte [edx], al
mov eax, dword [esp + 0x1c]
mov dl, byte [esi + 1]
neg eax
sbb eax, eax
and eax, 3
inc eax
add dl, al
mov eax, dword [edi + 0x20]
add dl, cl
mov byte [eax + 1], dl
add dword [edi + 0x20], 2
add esi, 2
cmp esi, dword [esp + 0x20]
jb 0x46ca00
mov edx, dword [esp + 0x20]
add ebx, ecx
sub dword [esp + 0x1c], 1
mov dword [esp + 0x68], edx
jns 0x46c9a0
cmp dword [esp + 0x14], 0
je 0x46ce8f
mov edx, dword [esp + 0x14]
mov edi, edi
mov eax, ebx
sub eax, edx
inc eax
mov esi, ebx
sub esi, eax
movzx ecx, byte [esi + 1]
movzx ebp, byte [esi + 2]
shl ecx, 8
or ecx, ebp
jne 0x46ca8c
xor edx, edx
jmp 0x46ca8e
sub edx, ecx
mov byte [ebx], 0x55
inc ebx
mov ecx, eax
sar ecx, 8
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
mov byte [esi + 1], cl
mov byte [esi + 2], al
test edx, edx
jne 0x46ca70
jmp 0x46ce8f
mov ebp, ebx
sub ebp, dword [esp + 0x1c]
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
mov esi, ebp
sub esi, eax
mov al, byte [esp + 0x20]
add al, 0x56
cmp dword [esp + 0x10c], 0
mov byte [ebp], al
jne 0x46ce8f
cmp byte [esi], 0x5d
je 0x46ce8f
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
push edx
push ebp
push eax
call fcn.00443152
add esp, 0xc
test eax, eax
jne 0x46cb28
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
mov dword [esp + 0x1c], eax
je 0x46caf0
jmp 0x46ce8f
add byte [esi], 3
jmp 0x46ce8f
test edx, edx
jne 0x46cb5d
mov eax, dword [esp + 0x50]
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xac]
mov ebx, ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
jmp 0x46b290
cmp edx, 1
je 0x46cb66
or dword [edi + 0x44], 1
cmp dword [esp + 0x44], 0
jne 0x46cb7b
cmp edx, 0xffffffff
jne 0x46cb90
add al, 0x46
mov byte [ebx], al
jmp 0x46ce8e
cmp dword [esp + 0x44], 1
jne 0x46cb9e
cmp edx, 0xffffffff
jne 0x46cb9e
add al, 0x48
mov byte [ebx], al
jmp 0x46ce8e
cmp edx, 1
jne 0x46cb9e
add al, 0x4a
mov byte [ebx], al
jmp 0x46ce8e
add al, 0x4c
mov byte [ebx], al
mov eax, dword [esp + 0x44]
inc ebx
mov ecx, eax
sar ecx, 8
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
cmp edx, 0xffffffff
jne 0x46cbbf
xor edx, edx
mov dword [esp + 0x2c], edx
mov eax, edx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x46ce8f
mov esi, dword [esp + 0x40]
test esi, esi
je 0x46cc20
test byte [ebx - 1], 0x80
lea eax, [ebx - 1]
je 0x46cc20
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x46cbfc
lea esp, [esp]
mov dl, byte [eax - 1]
dec eax
and dl, 0xc0
cmp dl, 0x80
je 0x46cbf0
mov ecx, ebx
sub ecx, eax
push ecx
push eax
lea eax, [esp + 0xc0]
push eax
mov dword [esp + 0x20], ecx
call fcn.004135d0
add esp, 0xc
or dword [esp + 0x14], 0x80
jmp 0x46cc3c
cmp dword [esp + 0x44], 1
movzx ecx, byte [ebx - 1]
mov dword [esp + 0x14], ecx
jle 0x46cc3c
mov eax, dword [edi + 0x48]
or eax, ecx
or eax, dword [esp + 0x70]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x24], 0
jne 0x46cc88
cmp dword [esp + 0x2c], 0
jge 0x46cc88
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
push edi
push ecx
mov ecx, dword [esp + 0x1c]
inc edx
push edx
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xc4]
push eax
movzx eax, byte [edx]
push esi
push ecx
push eax
call fcn.0044276f
add esp, 0x1c
test eax, eax
je 0x46cc88
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 1
mov ecx, dword [esp + 0x18]
mov al, byte [ecx]
cmp al, 0x10
je 0x46cca1
cmp al, 0xf
je 0x46cca1
mov eax, 0xffffffff
mov dword [esp + 0x1c], eax
jmp 0x46ccad
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x2c], 0
mov esi, ebx
mov dword [esp + 0x30], eax
mov ebx, ecx
je 0x46d16f
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
je 0x46cccd
or dword [edi + 0x44], 1
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x44]
add eax, edx
mov dword [esp + 0x20], eax
test ebp, ebp
jne 0x46cd16
mov ebx, dword [esp + 0x18]
cmp ecx, 0xffffffff
jne 0x46ccf6
add al, 0x1f
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
cmp ecx, 1
jne 0x46cd05
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
add al, 0x25
mov byte [ebx], al
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
jmp 0x46ce54
cmp ebp, 1
jne 0x46cd5a
cmp ecx, 0xffffffff
jne 0x46cd2e
mov ebx, dword [esp + 0x18]
add al, 0x21
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
mov ebx, esi
cmp ecx, 1
je 0x46d16f
mov al, byte [esp + 0x20]
add al, 0x25
mov byte [esi], al
mov eax, dword [esp + 0x2c]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x46ce57
mov ebx, dword [esp + 0x18]
add dl, 0x27
mov byte [ebx], dl
inc ebx
mov edx, ebp
sar edx, 8
mov byte [ebx], dl
mov dl, byte [esp + 0x44]
mov byte [ebx + 1], dl
add ebx, 2
test ecx, ecx
jge 0x46cdd6
cmp dword [esp + 0x40], 0
je 0x46cdb3
cmp dword [esp + 0x14], 0x80
jl 0x46cdb3
mov esi, dword [esp + 0x14]
and esi, 7
push esi
lea eax, [esp + 0xbc]
push eax
push ebx
call fcn.004135d0
mov eax, dword [esp + 0x2c]
add ebx, esi
add al, 0x1f
add esp, 0xc
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
mov cl, byte [esp + 0x14]
mov byte [ebx], cl
mov ecx, dword [esp + 0x1c]
inc ebx
test ecx, ecx
jl 0x46cdcc
mov dl, byte [esp + 0x30]
mov byte [ebx], cl
inc ebx
mov byte [ebx], dl
inc ebx
add al, 0x1f
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x2c], ecx
je 0x46ce5a
cmp dword [esp + 0x40], 0
je 0x46ce12
cmp dword [esp + 0x14], 0x80
jl 0x46ce12
mov esi, dword [esp + 0x14]
and esi, 7
push esi
lea edx, [esp + 0xbc]
push edx
push ebx
call fcn.004135d0
mov eax, dword [esp + 0x2c]
add esp, 0xc
add ebx, esi
jmp 0x46ce19
mov cl, byte [esp + 0x14]
mov byte [ebx], cl
inc ebx
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x2c]
jl 0x46ce34
movzx edx, byte [esp + 0x1c]
mov byte [ebx], dl
movzx edx, byte [esp + 0x30]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], ecx
cmp ecx, 1
jne 0x46ce48
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x46ce5a
add al, 0x25
mov byte [ebx], al
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [esp + 0x40], 0
je 0x46ce88
cmp dword [esp + 0x14], 0x80
jl 0x46ce88
mov esi, dword [esp + 0x14]
and esi, 7
push esi
lea ecx, [esp + 0xbc]
push ecx
push ebx
call fcn.004135d0
add esp, 0xc
add ebx, esi
jmp 0x46ce8f
mov dl, byte [esp + 0x14]
mov byte [ebx], dl
inc ebx
cmp dword [esp + 0x24], 0
je 0x46d16f
mov ebp, dword [esp + 0x3c]
mov al, byte [ebp]
cmp al, 0x27
je 0x46cead
cmp al, 0x41
je 0x46ceb1
cmp al, 0x34
jne 0x46ced5
cmp al, 0x41
jne 0x46cec5
mov cl, byte [ebp + 3]
cmp cl, 0x10
je 0x46cebe
cmp cl, 0xf
jne 0x46cec5
mov ecx, 2
jmp 0x46cec7
xor ecx, ecx
movzx eax, al
movzx edx, byte [eax + 0x484690]
add edx, ecx
add ebp, edx
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x30], eax
test eax, eax
jle 0x46d16f
movzx eax, byte [ebp]
add eax, 0xffffffe1
cmp eax, 0x20
ja case.0x46cefc.32
movzx eax, byte [eax + 0x46eb18]
jmp dword [eax*4 + 0x46eae4]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x28
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x29
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x2a
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x2b
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x42
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x43
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x44
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x45
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x35
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x36
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x37
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov byte [ebp], 0x38
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [ebp + 3]
push ebp
push edx
call fcn.00416980
mov ecx, dword [esp + 0x3c]
add ecx, 3
mov byte [ebp], 0x5d
mov byte [ebx + 3], 0x55
add ebx, 3
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
add esp, 0xc
mov byte [ebp + 1], al
add ebx, 2
mov byte [ebp + 2], cl
mov eax, dword [esp + 0x50]
or dword [edi + 0x48], eax
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov edx, dword [edi + 0x20]
inc eax
xor esi, esi
mov dword [esp + 0x68], edx
mov dl, byte [eax]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], 0x5f
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], eax
cmp dl, 0x2a
jne 0x46d2ad
movzx ebp, byte [eax + 1]
mov esi, dword [edi + 0xc]
test byte [esi + ebp], 2
je 0x46d2ad
inc eax
mov edx, eax
xor ebp, ebp
mov dword [esp + 0x30], str.ACCEPT
mov dword [esp + 0x64], edx
mov dword [esp + 0x18], ebp
lea ecx, [ecx]
movzx ecx, byte [eax + 1]
inc eax
test byte [ecx + esi], 2
jne 0x46d1f0
mov cl, byte [eax]
mov dword [esp + 0x10], eax
cmp cl, 0x3a
je 0x46e681
cmp cl, 0x29
jne 0x46e6a8
mov esi, eax
sub esi, edx
cmp esi, dword [ebp*8 + 0x4852b8]
jne 0x46d237
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x64]
push esi
push edx
push eax
call fcn.00415e08
add esp, 0xc
test eax, eax
je 0x46d277
mov ecx, dword [ebp*8 + 0x4852b8]
mov edx, dword [esp + 0x30]
inc ebp
cmp ebp, 7
lea eax, [edx + ecx + 1]
mov dword [esp + 0x30], eax
jl 0x46d217
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x3c
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov al, byte [ebp*8 + 0x4852bc]
mov byte [ebx], al
inc ebx
cmp al, 0x6e
jne 0x46d28c
mov dword [edi + 0x4c], 1
cmp ebp, 7
jge 0x46d250
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
jmp 0x46b290
or esi, 0xffffffff
mov ebp, 0x5e
cmp dl, 0x3f
jne 0x46dace
mov cl, byte [eax + 1]
inc eax
movzx edx, cl
add edx, 0xffffffdf
mov dword [esp + 0x10], eax
cmp edx, 0x5b
ja case.0x46d2dc.34
movzx edx, byte [edx + 0x46eb78]
jmp dword [edx*4 + 0x46eb3c]
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
test cl, cl
je 0x46d301
nop
cmp cl, 0x29
je 0x46d328
mov cl, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
test cl, cl
jne 0x46d2f0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x12
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
cmp byte [eax], 0
je 0x46d301
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
jmp 0x46b290
mov dword [esp + 0x30], 1
inc eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebx
mov edx, ebp
jmp 0x46d6c0
cmp byte [eax + 1], 0x3f
mov dword [esp + 0x20], 0x60
jne 0x46d391
mov cl, byte [eax + 2]
cmp cl, 0x3d
je 0x46de86
cmp cl, 0x21
je 0x46de86
cmp cl, 0x3c
je 0x46de86
mov byte [ebx + 3], 0x64
mov cl, byte [eax + 1]
mov dword [esp + 0x24], 3
mov dword [esp + 0x3c], esi
cmp cl, 0x52
jne 0x46d3bc
cmp byte [eax + 2], 0x26
jne 0x46d3bc
mov dword [esp + 0x1c], esi
add eax, 2
mov byte [ebx + 3], 0x65
jmp 0x46d3f7
cmp cl, 0x3c
jne 0x46d3cc
mov dword [esp + 0x1c], 0x3e
inc eax
jmp 0x46d3f7
cmp cl, 0x27
jne 0x46d3dc
mov dword [esp + 0x1c], 0x27
inc eax
jmp 0x46d3f7
mov dword [esp + 0x1c], 0
cmp cl, 0x2d
je 0x46d3ee
cmp cl, 0x2b
jne 0x46d3f7
movzx ecx, byte [eax + 1]
inc eax
mov dword [esp + 0x3c], ecx
movzx edx, byte [eax + 1]
mov ebp, dword [edi + 0xc]
inc eax
test byte [edx + ebp], 0x10
je 0x46e6cf
movzx edx, byte [eax]
xor ecx, ecx
test byte [edx + ebp], 0x10
mov dword [esp + 0x14], ecx
mov esi, eax
je 0x46d448
lea ebx, [ebx]
test ecx, ecx
jl 0x46d439
test byte [edx + 0x485d30], 4
je 0x46d436
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
jmp 0x46d439
or ecx, 0xffffffff
movzx edx, byte [eax + 1]
inc eax
test byte [edx + ebp], 0x10
jne 0x46d420
mov dword [esp + 0x14], ecx
mov ebp, eax
sub ebp, esi
cmp dword [esp + 0x1c], 0
jle 0x46d461
movzx edx, byte [eax]
inc eax
cmp edx, dword [esp + 0x1c]
jne 0x46e6f2
mov dl, byte [eax]
inc eax
mov dword [esp + 0x10], eax
cmp dl, 0x29
jne 0x46e6f2
xor edx, edx
cmp dword [esp + 0x10c], edx
jne 0x46de86
mov eax, dword [esp + 0x3c]
cmp eax, edx
jle 0x46d4cb
cmp ecx, edx
jle 0x46e716
cmp eax, 0x2d
jne 0x46d49f
mov eax, dword [edi + 0x30]
sub eax, ecx
inc eax
mov ecx, eax
jmp 0x46d4a2
add ecx, dword [edi + 0x30]
cmp ecx, edx
jle 0x46dff0
cmp ecx, dword [edi + 0x34]
jg 0x46dff0
mov edx, ecx
sar edx, 8
mov byte [ebx + 4], dl
mov edx, dword [esp + 0x20]
mov byte [ebx + 5], cl
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
cmp dword [edi + 0x28], edx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x18], edx
jle 0x46d50f
jmp 0x46d4e0
mov eax, dword [esp + 0x54]
push ebp
add eax, 2
push eax
push esi
call fcn.00415e08
add esp, 0xc
test eax, eax
je 0x46d50b
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x2c]
add dword [esp + 0x54], ecx
inc eax
cmp eax, dword [edi + 0x28]
mov dword [esp + 0x18], eax
jl 0x46d4e0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
cmp edx, dword [edi + 0x28]
jge 0x46d53c
movzx eax, byte [ecx + 1]
movzx ecx, byte [ecx]
shl ecx, 8
or eax, ecx
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov edx, dword [esp + 0x20]
mov byte [ebx + 5], al
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
xor eax, eax
cmp dword [esp + 0x38], eax
setne al
push eax
push ebp
push esi
push edi
call fcn.004433c2
add esp, 0x10
test eax, eax
jle 0x46d56d
mov edx, dword [esp + 0x20]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
cmp dword [esp + 0x1c], 0
jne 0x46e73d
cmp byte [esi], 0x52
jne 0x46d5d2
xor eax, eax
lea ecx, [eax + 1]
cmp ebp, ecx
jle 0x46d5b1
jmp 0x46d590
movzx edx, byte [ecx + esi]
test byte [edx + 0x485d30], 4
je 0x46e764
inc ecx
cmp ecx, ebp
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
jl 0x46d590
test eax, eax
jne 0x46d5b6
mov eax, 0xffff
mov edx, dword [esp + 0x20]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 3], 0x65
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
cmp ebp, 6
jne 0x46d603
push ebp
push str.DEFINE
push esi
call fcn.00415e08
add esp, 0xc
test eax, eax
jne 0x46d603
mov edx, dword [esp + 0x20]
mov byte [ebx + 3], 0x66
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x46e78b
cmp eax, dword [edi + 0x34]
jg 0x46e78b
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov edx, dword [esp + 0x20]
mov byte [ebx + 5], al
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
mov edx, 0x58
inc eax
jmp 0x46d6b0
inc eax
cmp byte [eax], 0x29
mov dword [esp + 0x10], eax
jne 0x46d66a
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [ebx], 0x6d
inc ebx
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov edx, 0x59
jmp 0x46d6b4
mov dl, byte [eax + 1]
cmp dl, 0x21
je 0x46d6a8
cmp dl, 0x3d
je 0x46d6a1
mov esi, dword [edi + 0xc]
movzx edx, dl
test byte [edx + esi], 0x10
je 0x46e7b8
cmp cl, 0x3c
jne 0x46d920
mov edx, 0x3e
jmp 0x46d925
mov edx, 0x5a
jmp 0x46d6ad
mov edx, 0x5b
add eax, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x10c]
mov byte [ebx], dl
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x64], ecx
xor ecx, ecx
neg eax
sbb eax, eax
lea esi, [esp + 0x54]
and eax, esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x54], ecx
cmp edx, 0x5a
je 0x46d6f0
cmp dword [esp + 0x20], 0x5b
jne 0x46d6f5
mov ecx, 1
mov edx, dword [esp + 0x104]
push eax
push edi
push edx
lea eax, [esp + 0xa0]
push eax
mov eax, dword [esp + 0x34]
lea edx, [esp + 0xb0]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x110]
push edx
push ecx
push eax
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x64]
push edx
and eax, 7
push eax
push ecx
call fcn.00456a8e
add esp, 0x34
test eax, eax
je 0x46e9e8
mov edx, dword [esp + 0x20]
cmp edx, 0x60
jne 0x46d78d
cmp dword [esp + 0x10c], 0
jne 0x46d78d
mov eax, ebx
xor ecx, ecx
movzx esi, byte [eax + 1]
movzx ebp, byte [eax + 2]
shl esi, 8
or esi, ebp
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x46d760
cmp byte [ebx + 3], 0x66
jne 0x46de93
cmp ecx, 1
jg 0x46e8a3
mov edx, 0x66
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0x29
jne 0x46e8f1
mov ecx, dword [esp + 0x10c]
test ecx, ecx
je 0x46debd
mov edx, dword [ecx]
mov eax, dword [esp + 0x54]
mov esi, 0x7fffffeb
sub esi, edx
lea ebp, [eax - 6]
cmp esi, ebp
jl 0x46e65a
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
lea edx, [edx + eax - 6]
mov dword [ecx], edx
mov ecx, dword [esp + 0x28]
mov byte [ebx], 0x5e
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
mov byte [ebx], 0x55
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
mov dword [esp + 0x20], 0x5d
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
inc eax
mov byte [ebx], 0x53
movzx ebp, byte [eax]
mov dword [esp + 0x5c], ebx
inc ebx
xor ecx, ecx
test byte [ebp + 0x485d30], 4
mov dword [esp + 0xa8], 1
mov dword [esp + 0x10], eax
je 0x46d868
lea ecx, [ecx]
lea ecx, [ecx + ecx*4]
inc eax
lea ecx, [ebp + ecx*2 - 0x30]
movzx ebp, byte [eax]
test byte [ebp + 0x485d30], 4
jne 0x46d850
mov dword [esp + 0x10], eax
cmp byte [eax], 0x29
jne 0x46e7dc
cmp ecx, 0xff
jg 0x46e803
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov byte [ebx], cl
mov ecx, dword [esp + 0x28]
mov edx, eax
sub edx, dword [edi + 0x18]
inc ebx
inc edx
sar edx, 8
mov byte [ebx], dl
sub al, byte [edi + 0x18]
mov byte [ebx + 2], 0
inc al
mov byte [ebx + 1], al
mov byte [ebx + 3], 0
add ebx, 4
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jmp 0x46b290
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x3d
je 0x46d90e
cmp cl, 0x3e
je 0x46d8fc
cmp cl, 0x3c
je 0x46d697
mov edx, dword [esp + 0xf8]
pop edi
pop esi
mov dword [edx], 0x29
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], eax
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov dword [esp + 0x24], 1
mov edx, 0x29
jmp 0x46e081
mov dword [esp + 0x24], 0
mov edx, 0x29
jmp 0x46e081
mov edx, 0x27
movzx ecx, byte [eax + 1]
mov esi, dword [edi + 0xc]
inc eax
test byte [ecx + esi], 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
je 0x46d94f
mov ecx, esi
lea ecx, [ecx]
movzx esi, byte [eax + 1]
inc eax
test byte [esi + ecx], 0x10
jne 0x46d940
mov dword [esp + 0x10], eax
mov esi, eax
sub esi, dword [esp + 0x1c]
cmp dword [esp + 0x10c], 0
je 0x46d9b6
movzx ecx, byte [eax]
cmp ecx, edx
jne 0x46e82a
cmp dword [edi + 0x28], 0x2710
jge 0x46e851
lea ecx, [esi + 3]
cmp ecx, dword [edi + 0x2c]
jle 0x46da7a
cmp esi, 0x20
mov dword [edi + 0x2c], ecx
jle 0x46da7a
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x30
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
cmp dword [edi + 0x28], 0
mov ebp, dword [edi + 0x24]
mov dword [esp + 0x18], 0
jle 0x46da4d
jmp 0x46d9d0
mov eax, dword [esp + 0x1c]
push esi
lea edx, [ebp + 2]
push edx
push eax
call fcn.00413935
add esp, 0xc
test eax, eax
jne 0x46da1d
cmp byte [esi + ebp + 2], al
jne 0x46da32
test dword [esp + 0x28], 0x80000
jne 0x46da1f
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x2b
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
jl 0x46da32
mov eax, dword [esp + 0x18]
add ebp, dword [edi + 0x2c]
inc eax
cmp eax, dword [edi + 0x28]
mov dword [esp + 0x18], eax
jl 0x46d9d0
jmp 0x46da4d
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [esp + 0x18]
lea edx, [eax + ebp]
imul ecx, eax
push ecx
push ebp
push edx
call fcn.00416980
add esp, 0xc
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x1c]
inc eax
sar eax, 8
mov byte [ebp], al
mov cl, byte [edi + 0x30]
push esi
push edx
lea eax, [ebp + 2]
inc cl
push eax
mov byte [ebp + 1], cl
call fcn.004135d0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov byte [esi + ebp + 2], 0
inc eax
inc dword [edi + 0x28]
mov dword [esp + 0x10], eax
inc dword [edi + 0x30]
mov ecx, dword [edi + 0x30]
sar ecx, 8
mov byte [ebx + 3], cl
mov dl, byte [edi + 0x30]
mov byte [ebx + 4], dl
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], 2
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
mov edx, 0x29
mov dword [esp + 0x24], 1
jmp 0x46e081
inc eax
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x10]
mov edx, 0x29
jmp 0x46dccb
test ecx, 0x1000
je 0x46da82
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebx
mov edx, ebp
jmp 0x46d6c0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x30]
mov esi, dword [esp + 0xf8]
push 0
push ecx
push edx
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.0043571a
add esp, 0x14
cmp dword [esi], 0
jne 0x46e9e8
xor ebp, ebp
cmp eax, ebp
jge 0x46e362
mov ecx, eax
neg ecx
cmp ecx, 0x1a
jne 0x46db83
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0x5c
jne 0x46db5f
cmp byte [eax + 2], 0x45
jne 0x46db5f
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
add eax, 2
mov dword [esp + 0x10], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x58], 1
jmp 0x46b290
cmp ecx, 0x19
je 0x46e3de
mov edx, dword [esp + 0x34]
cmp edx, 0xfffffffe
jne 0x46dba6
cmp ecx, 5
jle 0x46dba6
cmp ecx, 0x17
jge 0x46dba6
or edx, 0xffffffff
mov dword [esp + 0x34], edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x60], edx
cmp ecx, 0x1b
jne 0x46e034
mov eax, dword [edi + 0x20]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
inc eax
xor edx, edx
cmp byte [eax], 0x3c
lea ebp, [eax + 1]
setne dl
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov cl, byte [ebp]
mov dword [esp + 0x10], eax
dec edx
and edx, 0x17
add edx, 0x27
cmp cl, 0x2b
je 0x46dc79
cmp cl, 0x2d
je 0x46dc79
mov esi, ebp
mov al, byte [esi]
mov dword [esp + 0x3c], 1
test al, al
je 0x46dc35
lea esp, [esp]
movzx eax, al
cmp eax, edx
je 0x46dc35
mov ecx, dword [edi + 0xc]
mov al, byte [eax + ecx]
test al, 4
jne 0x46dc29
mov dword [esp + 0x3c], 0
test al, 0x10
je 0x46dc35
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46dc10
movzx eax, byte [esi]
cmp eax, edx
je 0x46dc65
mov ecx, dword [esp + 0xf8]
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x28]
jmp 0x46b290
cmp dword [esp + 0x3c], 0
jne 0x46dcc7
mov dword [esp + 0x24], 1
jmp 0x46e07d
movzx ecx, byte [eax + 2]
add eax, 2
test byte [ecx + 0x485d30], 4
je 0x46dc9e
lea esp, [esp]
movzx ecx, byte [eax + 1]
inc eax
test byte [ecx + 0x485d30], 4
jne 0x46dc90
movzx eax, byte [eax]
cmp eax, edx
je 0x46dcc7
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esi], 0x39
mov esi, dword [esp + 0xac]
jmp 0x46b290
mov dword [esp + 0x10], ebp
mov cl, byte [ebp]
movzx esi, cl
cmp esi, 0x2b
jne 0x46dd0f
movzx eax, byte [ebp + 1]
inc ebp
test byte [eax + 0x485d30], 4
mov dword [esp + 0x10], ebp
jne 0x46df95
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
mov dword [edx], ebp
pop ebp
mov dword [ecx], 0x3f
xor eax, eax
pop ebx
add esp, 0xd8
ret
cmp esi, 0x2d
jne 0x46df95
movzx eax, byte [ebp + 1]
test byte [eax + 0x485d30], 4
jne 0x46df8c
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x3c]
cmp cl, 0x29
je 0x46ddaa
lea edx, [ebp + 1]
cmp cl, 0x3a
je 0x46dda2
add dword [esp + 0x10], edx
movzx ecx, cl
sub ecx, 0x2d
cmp ecx, 0x4b
ja case.0x46dd60.46
movzx ecx, byte [ecx + 0x46ebf8]
jmp dword [ecx*4 + 0x46ebd4]
lea eax, [esp + 0x1c]
jmp 0x46dd97
or dword [eax], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x46dd97
or dword [eax], edx
jmp 0x46dd97
or dword [eax], 2
jmp 0x46dd97
or dword [eax], 4
jmp 0x46dd97
or dword [eax], 8
jmp 0x46dd97
or dword [eax], 0x200
jmp 0x46dd97
or dword [eax], 0x40
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx]
cmp cl, 0x29
jne 0x46dd41
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
or edx, esi
not ebp
and edx, ebp
cmp byte [eax], 0x29
mov dword [esp + 0x50], edx
jne 0x46de7a
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x46de11
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x46dddf
cmp dword [eax], 6
jne 0x46de11
mov eax, dword [esp + 0xec]
inc dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [edi + 0x40], edx
mov dword [eax], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], 0
mov ecx, edx
jmp 0x46b290
mov eax, edx
xor eax, esi
test al, 7
je 0x46de25
mov byte [ebx], 0x19
mov cl, dl
inc ebx
and cl, 7
mov byte [ebx], cl
inc ebx
mov ebp, dword [esp + 0x5c]
mov eax, edx
shr eax, 9
and eax, 1
mov dword [esp + 0xac], eax
mov esi, dword [esp + 0xac]
xor eax, 1
mov dword [esp + 0xc0], eax
movsx eax, dl
and eax, 1
shl eax, 8
inc dword [esp + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xec]
mov dword [eax], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], 0
mov ecx, edx
jmp 0x46b290
inc dword [esp + 0x10]
mov dword [esp + 0x20], 0x5e
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x46d6c0
cmp ecx, 2
jg 0x46e8ca
cmp ecx, 1
jne 0x46d78d
or esi, 0xffffffff
or eax, esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xa0], eax
jmp 0x46d79b
mov ebx, dword [esp + 0x3c]
cmp edx, 0x66
je 0x46e3de
cmp edx, 0x5d
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xa4], 0
jl 0x46df5b
cmp ecx, 0xfffffffe
jne 0x46df1e
test eax, eax
jl 0x46df0c
mov dword [esp + 0x34], eax
mov dword [esp + 0xa4], 1
mov dword [esp + 0x4c], 0xffffffff
jmp 0x46df33
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
jmp 0x46df33
test eax, eax
jl 0x46df33
test esi, esi
jge 0x46df3b
or eax, dword [esp + 0x64]
mov esi, eax
mov dword [esp + 0x94], esi
test esi, esi
jl 0x46e3de
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0xac]
jmp 0x46b290
cmp edx, 0x58
jne 0x46e3de
test esi, esi
jl 0x46e3de
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0xac]
jmp 0x46b290
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
movzx ecx, byte [ebp]
xor eax, eax
test byte [ecx + 0x485d30], 4
mov dword [esp + 0x14], eax
je 0x46dfc5
lea eax, [eax + eax*4]
inc ebp
lea eax, [ecx + eax*2 - 0x30]
movzx ecx, byte [ebp]
test byte [ecx + 0x485d30], 4
jne 0x46dfa8
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
movzx ecx, byte [ebp]
cmp ecx, edx
jne 0x46e918
cmp esi, 0x2d
jne 0x46e017
test eax, eax
je 0x46e716
mov edx, dword [edi + 0x30]
sub edx, eax
inc edx
mov dword [esp + 0x14], edx
test edx, edx
jg 0x46e16f
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0xf
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
cmp esi, 0x2b
jne 0x46e16f
test eax, eax
je 0x46e93f
add eax, dword [edi + 0x30]
mov dword [esp + 0x14], eax
jmp 0x46e16f
mov esi, dword [esp + 0x10]
cmp ecx, 0x1c
jne 0x46e2a1
mov dl, byte [esi + 1]
cmp dl, 0x3c
je 0x46e057
cmp dl, 0x27
je 0x46e057
cmp dl, 0x7b
jne 0x46e2a1
lea eax, [esi + 1]
mov dword [esp + 0x10], eax
mov al, byte [eax]
mov dword [esp + 0x24], ebp
cmp al, 0x3c
jne 0x46e06f
mov edx, 0x3e
jmp 0x46e07d
xor edx, edx
cmp al, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
mov eax, dword [esp + 0x10]
movzx esi, byte [eax + 1]
mov ebp, dword [edi + 0xc]
inc eax
test byte [esi + ebp], 0x10
mov ecx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ecx
je 0x46e0af
mov esi, ebp
jmp 0x46e0a0
movzx ebp, byte [eax + 1]
inc eax
test byte [esi + ebp], 0x10
jne 0x46e0a0
mov dword [esp + 0x10], eax
mov ebp, eax
sub ebp, ecx
cmp dword [esp + 0x10c], 0
je 0x46e0e6
test ebp, ebp
je 0x46e966
movzx eax, byte [eax]
cmp eax, edx
jne 0x46e98d
cmp ebp, 0x20
jg 0x46d98f
mov dword [esp + 0x14], 0
jmp 0x46e164
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
mov dword [esp + 0x18], 0
jle 0x46e124
mov edx, dword [esp + 0x1c]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.00415e08
add esp, 0xc
test eax, eax
jne 0x46e113
cmp byte [esi + ebp + 2], al
je 0x46e124
mov eax, dword [esp + 0x18]
add esi, dword [edi + 0x2c]
inc eax
cmp eax, dword [edi + 0x28]
mov dword [esp + 0x18], eax
jl 0x46e0f7
mov eax, dword [esp + 0x18]
cmp eax, dword [edi + 0x28]
jge 0x46e13f
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov dword [esp + 0x14], eax
jmp 0x46e164
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp dword [esp + 0x38], eax
setne al
push eax
push ebp
push edx
push edi
call fcn.004433c2
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jle 0x46e764
cmp dword [esp + 0x24], 0
je 0x46e2b1
cmp dword [esp + 0x10c], 0
mov eax, dword [edi + 0x14]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
jne 0x46e236
cmp dword [esp + 0x14], 0
mov byte [ebx], 0
je 0x46e1ac
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov edx, dword [edi + 0x14]
push eax
push ecx
push edx
call fcn.00434e4e
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x46e200
cmp dword [esp + 0x38], eax
setne al
push eax
mov eax, dword [esp + 0x18]
push eax
push 0
push edi
call fcn.004433c2
add esp, 0x10
test eax, eax
jl 0x46dff0
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov edx, ebx
sub edx, eax
mov eax, dword [edi + 0x20]
add edx, 4
mov dword [esp + 0x1c], ecx
sar edx, 8
mov byte [eax], dl
mov edx, dword [edi + 0x20]
mov cl, bl
sub cl, byte [edi + 0x14]
add cl, 4
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
jmp 0x46e232
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
jne 0x46e236
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push ebx
push edx
call fcn.00449d64
add esp, 0x10
test eax, eax
jne 0x46e9b4
mov eax, dword [esp + 0x1c]
mov byte [ebx], 0x5d
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x52
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [edi + 0x14]
add ebx, 3
cmp dword [esp + 0x34], 0xfffffffe
mov byte [ebx - 4], al
mov byte [ebx - 3], 0x55
mov byte [ebx - 2], 0
mov byte [ebx - 1], 6
mov dword [esp + 0x54], 9
jne 0x46e3de
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x34], 0xffffffff
jmp 0x46b290
cmp ecx, 0x1d
jl 0x46e314
mov ecx, 0xffffffe3
sub ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x34], 0xfffffffe
jne 0x46e2c0
mov dword [esp + 0x34], 0xffffffff
mov ecx, dword [esp + 0x14]
mov byte [ebx], 0x51
mov dword [esp + 0x18], ebx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], cl
add ebx, 2
cmp ecx, 0x20
mov eax, 1
jge 0x46e2e5
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x46e3de
mov eax, dword [esp + 0x14]
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x10]
jmp 0x46b290
cmp ecx, 0x16
je 0x46e9db
cmp ecx, 0xf
je 0x46e9db
cmp ecx, 0x10
je 0x46e9db
cmp ecx, 5
jle 0x46e33d
cmp ecx, 0x17
mov dword [esp + 0x18], ebx
jl 0x46e341
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
neg al
mov byte [ebx], al
inc ebx
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jmp 0x46b290
cmp dword [esp + 0x40], ebp
je 0x46e389
cmp eax, 0x7f
jle 0x46e389
lea ecx, [esp + 0xb0]
push ecx
push eax
call fcn.0043492f
mov ecx, dword [esp + 0x30]
add esp, 8
mov ebp, eax
jmp 0x46b71d
mov ecx, dword [esp + 0x28]
mov byte [esp + 0xb0], al
mov ebp, 1
jmp 0x46b71d
movzx eax, cl
or eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
cmp ebp, 1
je 0x46e3de
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
jmp 0x46e3da
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
cmp ebp, 1
je 0x46e3cf
cmp dword [esp + 0x70], 0
jne 0x46e3de
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
or eax, dword [esp + 0x70]
mov dword [esp + 0x48], eax
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
jmp 0x46b290
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x34
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x14
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x34
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x34]
mov dword [ecx], edx
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x48]
mov dword [ecx], edx
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [ecx], ebx
mov ecx, dword [esp + 0x10c]
mov dword [edx], eax
test ecx, ecx
je 0x46ea08
mov eax, dword [ecx]
mov edx, dword [esp + 0x9c]
mov esi, ebx
mov edi, 0x7fffffeb
sub esi, edx
sub edi, eax
cmp edi, esi
jge 0x46ea02
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x14
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x40
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf8]
xor eax, eax
cmp byte [edx + 1], 0x3a
pop edi
setne al
pop esi
pop ebp
pop ebx
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [ecx], eax
mov ecx, edx
mov edx, dword [esp + 0xe4]
mov dword [edx], ecx
xor eax, eax
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x1f
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x1e
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 7
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 8
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 6
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 9
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x37
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x14
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x3b
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x3c
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
pop ebp
mov dword [edx], eax
mov dword [ecx], 0x1c
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
pop edi
pop esi
dec eax
mov dword [edx], 0x1a
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], eax
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x3a
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0xf
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0xf
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
neg eax
sbb eax, eax
and eax, 0xffffffec
pop edi
add eax, 0x23
pop esi
mov dword [ecx], eax
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
pop edi
pop esi
inc eax
mov dword [edx], 0x18
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], eax
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x27
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x26
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x2a
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x31
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
sub dword [esp + 0x10], edx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0xc
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x36
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x1b
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0xe
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x1d
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x3a
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [eax], 0x3e
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
mov dword [ecx], 0x2a
mov ecx, dword [esp + 8]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], 0x28
mov edx, dword [esp + 0xec]
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf8]
mov dword [eax], 0x2d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
xor eax, eax
pop ebx
add esp, 0xd8
ret
sub eax, edx
add eax, ebx
mov dword [ecx], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd8
ret