Function at 0x4a6a70
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xe8
push ebx
push esi
push edi
mov edi, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x60]
xor eax, eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], eax
mov dword [ebp + 4], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp + 0x48], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ecx]
mov ecx, dword [ebp + 0x64]
mov esi, dword [ecx]
xor ecx, ecx
inc ecx
mov eax, edx
shr eax, 0xb
and eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, edx
shr eax, 9
and eax, ecx
mov dword [ebp - 0x70], eax
xor eax, ecx
mov dword [ebp - 0x6c], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x28], eax
mov eax, edx
and eax, ecx
shl eax, 8
mov dword [ebp + 0x34], edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x20], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x4c], eax
je 0x4a6b6e
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x4a908f
cmp ebx, dword [ebp - 0x14]
jae 0x4a6b13
mov ebx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, ebx
sub ecx, dword [ebp - 0x14]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x4a9208
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x7c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x4a6b63
cmp eax, dword [ebp - 0x58]
jbe 0x4a6b66
mov esi, dword [ebp - 0x58]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.004b2d90
mov eax, esi
sub eax, dword [ebp + 0x48]
add esp, 0xc
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x50]
add ebx, eax
jmp 0x4a6b66
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x14], ebx
jmp 0x4a6b80
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x4a908f
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x4a6be1
cmp eax, ecx
je 0x4a6be1
cmp eax, 0x5c
jne 0x4a6ba3
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x4a6ba3
mov dword [ebp + 4], ecx
mov dword [ebp + 0x50], eax
jmp 0x4a9084
cmp dword [ebp - 4], ecx
je 0x4a6bbf
cmp dword [ebp + 0x7c], ecx
jne 0x4a6bbb
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.004a636f
add esp, 4
and dword [ebp - 4], 0
test word [ebp + 0x34], 0x4000
je 0x4a781b
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.004a634b
mov ebx, eax
jmp 0x4a781b
cmp eax, 0x2a
je 0x4a6c53
cmp eax, 0x2b
je 0x4a6c53
cmp eax, 0x3f
je 0x4a6c53
cmp eax, 0x7b
jne 0x4a6c01
lea eax, [esi + 1]
call fcn.004a5a31
test eax, eax
jne 0x4a6c53
and dword [ebp + 0x40], 0
cmp dword [ebp - 4], 0
je 0x4a6c30
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x28]
test eax, eax
jg 0x4a6c30
cmp dword [ebp + 0x7c], 0
jne 0x4a6c2c
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.004a636f
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp - 4], 0
test byte [ebp + 0x34], 8
je 0x4a6ca6
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x4a9084
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x4a6ca6
jmp 0x4a6d3a
mov dword [ebp + 0x40], 1
jmp 0x4a6c30
mov ecx, dword [edi + 0x50]
test ecx, ecx
je 0x4a6d14
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x4a6d3a
push dword [ebp + 0x1c]
lea edx, [edi + 0x54]
push edx
push eax
push ecx
push esi
call fcn.004aece3
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x4a6d3a
mov eax, dword [edi + 0x54]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x4a9084
and dword [ebp + 0x4c], 0
xor edx, edx
test word [ebp + 0x34], 0x4000
je 0x4a6ccb
cmp dword [ebp + 0x40], edx
jne 0x4a6ccb
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.004a634b
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x4a77a7
je 0x4a7786
sub eax, edx
je 0x4a77d0
sub eax, 0x24
je 0x4a777b
sub eax, 4
je 0x4a6d56
dec eax
je 0x4a77d0
dec eax
je 0x4a6d4d
dec eax
jne 0x4a781b
or dword [ebp + 0x30], 0xffffffff
mov dword [ebp + 0x14], 1
jmp 0x4a880f
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x4a6d3a
cmp al, byte [edi + 0x58]
jne 0x4a6d3a
cmp ecx, 1
je 0x4a6c8f
mov al, byte [esi + 1]
cmp al, byte [edi + 0x59]
je 0x4a6c8f
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4a6c5c
jmp 0x4a6ca2
or dword [ebp + 0x30], 0xffffffff
jmp 0x4a880c
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x2c], eax
mov eax, dword [edi + 0x20]
inc esi
mov dword [ebp - 0xc], eax
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x2a
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x38], 0x5e
mov dword [ebp], edx
jne 0x4a6e3f
mov ecx, dword [edi + 0xc]
lea edx, [esi + 1]
mov dword [ebp + 0x40], edx
movzx edx, byte [edx]
test byte [edx + ecx], 2
je 0x4a6e3f
mov esi, dword [ebp + 0x40]
and dword [ebp + 0x48], 0
mov dword [ebp + 0x3c], 0x467a20
mov dword [ebp + 0x40], esi
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x4a6da4
mov al, byte [esi]
cmp al, 0x3a
je 0x4a909d
cmp al, 0x29
jne 0x4a6e31
sub esi, dword [ebp + 0x40]
xor eax, eax
cmp dword [0x476038], eax
mov dword [ebp + 0x24], eax
jle 0x4a6e31
cmp esi, dword [eax*8 + 0x476000]
jne 0x4a6dee
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x40]
call fcn.004b2218
add esp, 0xc
test eax, eax
mov eax, dword [ebp + 0x24]
je 0x4a6e0d
mov ecx, dword [eax*8 + 0x476000]
mov edx, dword [ebp + 0x3c]
inc eax
cmp eax, dword [0x476038]
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x24], eax
jl 0x4a6dcf
jmp 0x4a6e22
mov al, byte [eax*8 + 0x476004]
mov byte [ebx], al
inc ebx
cmp al, 0x6d
jne 0x4a6e22
mov dword [edi + 0x4c], 1
mov eax, dword [ebp + 0x24]
cmp eax, dword [0x476038]
jl 0x4a9084
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x4a9211
cmp al, 0x3f
jne 0x4a7607
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x4a719f
je 0x4a71d8
cmp eax, 0x28
jg 0x4a7182
je 0x4a6f12
sub eax, 0x21
je 0x4a6ec6
dec eax
dec eax
je 0x4a6e97
sub eax, 3
je 0x4a6e88
dec eax
je 0x4a74a5
jmp 0x4a7232
push 0x29
pop edx
mov dword [ebp + 0x40], 1
jmp 0x4a7962
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x4a6eb8
cmp al, 0x29
je 0x4a6eaf
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4a6ea1
cmp byte [esi], 0
jne 0x4a9084
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x4a9211
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x4a6edc
mov byte [ebx], 0x6c
inc ebx
and dword [ebp + 0x48], 0
jmp 0x4a9084
mov dword [ebp + 0x38], 0x58
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x38]
mov byte [ebx], al
mov ecx, dword [edi + 0x48]
and dword [ebp - 8], 0
cmp eax, 0x59
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x40], ecx
je 0x4a7618
cmp eax, 0x5a
je 0x4a7618
xor eax, eax
jmp 0x4a761b
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x38], 0x5f
jne 0x4a6f3a
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x4a75e8
cmp al, 0x21
je 0x4a75e8
cmp al, 0x3c
je 0x4a75e8
or dword [ebp + 0x44], 0xffffffff
mov byte [ebx + 3], 0x63
mov esi, dword [ebp + 0x50]
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x24], 3
jne 0x4a6f6b
add esi, 2
cmp byte [esi], 0x26
jne 0x4a6f6b
or dword [ebp + 0x3c], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x64
jmp 0x4a6fa1
cmp cl, 0x3c
jne 0x4a6f79
mov dword [ebp + 0x3c], 0x3e
jmp 0x4a6f85
cmp cl, 0x27
jne 0x4a6f8a
mov dword [ebp + 0x3c], 0x27
mov dword [ebp + 0x50], eax
jmp 0x4a6fa1
and dword [ebp + 0x3c], 0
cmp cl, 0x2d
je 0x4a6f98
cmp cl, 0x2b
jne 0x4a6fa1
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x44], eax
mov esi, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x4a90ab
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [ecx + eax], 0x10
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x18], esi
je 0x4a6ff2
test edx, edx
jl 0x4a6fe2
test byte [eax + 0x468450], 4
je 0x4a6fdf
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
jmp 0x4a6fe2
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [ecx + eax], 0x10
jne 0x4a6fc9
mov dword [ebp + 0x4c], edx
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x3c], 0
mov dword [ebp + 0x48], eax
jle 0x4a7010
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x3c]
mov dword [ebp + 0x50], esi
jne 0x4a90bc
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x4a90bc
cmp dword [ebp + 0x7c], 0
jne 0x4a75e8
xor eax, eax
cmp dword [ebp + 0x44], eax
jle 0x4a7068
cmp edx, eax
jle 0x4a90ce
cmp dword [ebp + 0x44], 0x2d
jne 0x4a7047
mov ecx, dword [edi + 0x30]
sub ecx, edx
inc ecx
mov edx, ecx
jmp 0x4a704a
add edx, dword [edi + 0x30]
cmp edx, eax
jle 0x4a7397
cmp edx, dword [edi + 0x34]
jg 0x4a7397
mov eax, edx
sar eax, 8
mov byte [ebx + 5], dl
jmp 0x4a75e5
cmp dword [edi + 0x28], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], eax
jle 0x4a70a2
mov esi, ecx
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004b2218
add esp, 0xc
test eax, eax
je 0x4a709f
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x40], esi
jl 0x4a7078
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x4a70c5
mov eax, dword [ebp + 0x40]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
mov eax, ecx
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x4a75e8
mov eax, dword [ebp + 0x34]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x18]
mov ecx, esi
call fcn.004a5b28
add esp, 0xc
test eax, eax
jg 0x4a70b5
xor ecx, ecx
cmp dword [ebp + 0x3c], ecx
jne 0x4a7397
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0x52
jne 0x4a7139
xor esi, esi
inc esi
cmp dword [ebp + 0x48], esi
jle 0x4a7123
movzx eax, byte [esi + edx]
test byte [eax + 0x468450], 4
je 0x4a7397
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x48]
lea ecx, [ecx + eax - 0x30]
jl 0x4a7101
test ecx, ecx
jne 0x4a7128
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x64
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x4a75e5
cmp dword [ebp + 0x48], 6
jne 0x4a7163
push 6
push 0x468564
push edx
call fcn.004b2218
add esp, 0xc
test eax, eax
jne 0x4a7163
mov byte [ebx + 3], 0x65
mov dword [ebp + 0x24], 1
jmp 0x4a75e8
mov eax, dword [ebp + 0x4c]
test eax, eax
jle 0x4a7173
cmp eax, dword [edi + 0x34]
jle 0x4a70b5
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x4a91a9
cmp eax, 0x2b
je 0x4a71ec
cmp eax, 0x2d
je 0x4a71ec
cmp eax, 0x2f
jle 0x4a7232
cmp eax, 0x39
jle 0x4a71ec
jmp 0x4a7232
sub eax, 0x3c
je 0x4a7482
dec eax
je 0x4a7472
dec eax
je 0x4a7466
sub eax, 5
je 0x4a73fb
sub eax, 0xd
je 0x4a73c1
dec eax
dec eax
je 0x4a71e8
sub eax, 0x2a
jne 0x4a7232
mov dword [ebp], 1
mov dword [ebp + 0x38], 0x5d
inc esi
mov dword [ebp + 0x50], esi
jmp 0x4a75e8
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x4a7218
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x468450], 4
jne 0x4a7345
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3f
jmp 0x4a9211
cmp ecx, 0x2d
jne 0x4a7345
inc esi
movzx eax, byte [esi]
test byte [eax + 0x468450], 4
jne 0x4a7342
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], esi
lea ecx, [ebp + 0x40]
je 0x4a72c1
cmp dl, 0x3a
je 0x4a72bb
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x4a7291
je 0x4a728c
cmp eax, 0x2d
je 0x4a7287
cmp eax, 0x4a
je 0x4a727b
cmp eax, 0x55
je 0x4a7273
cmp eax, 0x58
jne 0x4a90dc
or dword [ecx], 0x40
jmp 0x4a72b1
or dword [ecx], 0x200
jmp 0x4a72b1
or dword [ecx], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x4a72b1
lea ecx, [ebp + 0x3c]
jmp 0x4a72b1
or dword [ecx], 1
jmp 0x4a72b1
cmp eax, 0x6d
je 0x4a72ae
cmp eax, 0x73
je 0x4a72a9
cmp eax, 0x78
jne 0x4a90dc
or dword [ecx], 8
jmp 0x4a72b1
or dword [ecx], 4
jmp 0x4a72b1
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x4a7244
mov esi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x3c]
or esi, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
not eax
and esi, eax
cmp byte [ecx], 0x29
mov eax, esi
mov dword [ebp + 0x2c], eax
jne 0x4a7333
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x4a72f6
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4a72eb
cmp dword [ecx], 6
jne 0x4a72f6
mov dword [edi + 0x40], eax
mov dword [ebp + 0x34], eax
jmp 0x4a6ed3
mov ecx, eax
xor ecx, dword [ebp + 0x34]
test cl, 7
je 0x4a730c
mov byte [ebx], 0x18
mov cl, al
inc ebx
and cl, 7
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x5c]
mov dword [ecx], eax
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x70], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x20], eax
jmp 0x4a6ed3
inc dword [ebp + 0x50]
mov dword [ebp + 0x38], 0x5d
jmp 0x4a75e8
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x468450], 4
mov dword [ebp + 0x4c], edx
je 0x4a7370
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x468450], 4
jne 0x4a7356
mov dword [ebp + 0x4c], edx
cmp byte [esi], 0x29
jne 0x4a90ed
cmp ecx, 0x2d
jne 0x4a73a5
test edx, edx
je 0x4a90ce
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
test eax, eax
mov dword [ebp + 0x4c], eax
jg 0x4a7a35
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x4a9211
cmp ecx, 0x2b
jne 0x4a7a35
test edx, edx
je 0x4a90ce
add edx, dword [edi + 0x30]
mov dword [ebp + 0x4c], edx
jmp 0x4a7a35
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x4a73e8
cmp dl, 0x3e
je 0x4a73e8
cmp dl, 0x3c
je 0x4a74a5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x4a9211
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
mov dword [ebp + 0x40], eax
pop edx
jmp 0x4a7962
mov byte [ebx], 0x52
mov esi, dword [ebp + 0x50]
mov dword [ebp - 4], ebx
inc ebx
mov dword [ebp - 0x28], 1
xor ecx, ecx
jmp 0x4a7417
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x468450], 4
jne 0x4a7410
cmp byte [esi], 0x29
jne 0x4a90fb
cmp ecx, 0xff
jg 0x4a9109
mov byte [ebx], cl
mov eax, dword [ebp + 0x50]
sub eax, dword [edi + 0x18]
inc ebx
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ebp + 0x50]
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
jmp 0x4a6ed3
mov dword [ebp + 0x38], 0x5c
jmp 0x4a71df
mov dword [ebp + 0x38], 0x57
inc esi
mov dword [ebp + 0x50], esi
jmp 0x4a6ee3
mov al, byte [esi + 1]
cmp al, 0x21
je 0x4a75fe
cmp al, 0x3d
je 0x4a75f0
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x4a9133
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x3c], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x18], esi
je 0x4a74d9
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x4a74cc
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x4a7526
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x3c]
jne 0x4a9117
cmp dword [edi + 0x28], 0x2710
jge 0x4a9125
lea edx, [eax + 3]
cmp edx, dword [edi + 0x2c]
jle 0x4a75c8
cmp eax, 0x20
mov dword [edi + 0x2c], edx
jle 0x4a75c8
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x4a9211
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4a759a
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004afc95
add esp, 0xc
test eax, eax
jne 0x4a756f
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
jne 0x4a756a
test dword [ebp + 0x34], 0x80000
jne 0x4a7571
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x4a9211
or eax, 0xffffffff
test eax, eax
jl 0x4a7581
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x4a7533
jmp 0x4a759a
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [ebp + 0x44]
imul ecx, eax
push ecx
add eax, esi
push esi
push eax
call fcn.004b2d90
add esp, 0xc
mov eax, dword [edi + 0x30]
push dword [ebp + 0x48]
inc eax
push dword [ebp + 0x18]
sar eax, 8
mov byte [esi], al
mov al, byte [edi + 0x30]
inc al
mov byte [esi + 1], al
lea eax, [esi + 2]
push eax
call fcn.004af930
mov eax, dword [ebp + 0x48]
mov byte [esi + eax + 2], 0
mov esi, dword [ebp + 0x50]
add esp, 0xc
inc esi
inc dword [edi + 0x28]
mov dword [ebp + 0x50], esi
inc dword [edi + 0x30]
mov eax, dword [edi + 0x30]
sar eax, 8
mov byte [ebx + 3], al
mov al, byte [edi + 0x30]
mov dword [ebp + 0x24], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x48], ebx
jmp 0x4a6ee7
mov dword [ebp + 0x38], 0x59
inc esi
inc esi
jmp 0x4a747a
mov dword [ebp + 0x38], 0x5a
jmp 0x4a75f7
test word [ebp + 0x34], 0x1000
je 0x4a75cf
mov dword [ebp + 0x38], 0x5d
jmp 0x4a75e8
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 8]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0x24]
push dword [ebp]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x34]
and eax, 7
push eax
push dword [ebp + 0x2c]
call fcn.004a9223
add esp, 0x34
test eax, eax
je 0x4a9211
mov edx, dword [ebp + 0x38]
cmp edx, 0x5f
jne 0x4a7693
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x4a7693
mov eax, ebx
xor ecx, ecx
mov ch, byte [eax + 1]
inc esi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x4a7671
cmp byte [ebx + 3], 0x65
jne 0x4a76e8
cmp esi, 1
jg 0x4a9145
push 0x65
pop edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0x29
jne 0x4a9161
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4a7701
mov eax, dword [ecx]
mov ecx, dword [ebp - 8]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x4a9208
lea eax, [eax + ecx - 6]
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], eax
mov byte [ebx], 0x5d
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x54
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
jmp 0x4a9084
cmp esi, 2
jg 0x4a9153
cmp esi, 1
jne 0x4a7693
or eax, 0xffffffff
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x60], eax
jmp 0x4a7696
cmp edx, 0x65
mov ebx, dword [ebp + 0x10]
je 0x4a9084
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], ecx
mov ecx, dword [ebp + 0x28]
xor esi, esi
cmp edx, 0x5c
mov dword [ebp + 8], ecx
mov dword [ebp - 0x5c], esi
jl 0x4a775f
cmp ecx, 0xfffffffe
jne 0x4a7742
cmp eax, esi
jl 0x4a7738
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x5c], 1
jmp 0x4a773c
or dword [ebp + 0x28], 0xffffffff
or dword [ebp + 8], 0xffffffff
jmp 0x4a7751
cmp eax, esi
jl 0x4a7751
cmp dword [ebp - 0x1c], esi
jge 0x4a775a
or eax, dword [ebp + 0x40]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jl 0x4a9084
mov eax, dword [ebp - 0x1c]
jmp 0x4a7773
cmp edx, 0x57
jne 0x4a9084
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x4a9084
mov dword [ebp + 0xc], eax
jmp 0x4a9084
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x1a
jmp 0x4a7baf
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a7790
or dword [ebp + 0x28], 0xffffffff
mov eax, dword [ebp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x48], ebx
mov byte [ebx], 0xc
jmp 0x4a7baf
sub eax, 0x3f
je 0x4a8805
sub eax, 0x1c
je 0x4a7bd2
dec eax
je 0x4a789d
dec eax
dec eax
je 0x4a7882
sub eax, 0x1d
je 0x4a7816
dec eax
jne 0x4a781b
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x28]
mov dword [eax], ecx
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x7c]
cmp ecx, edx
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
je 0x4a780e
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x4a9208
sub eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x4a921b
cmp dword [ebp + 0x40], edx
jne 0x4a7858
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x34], al
je 0x4a8707
cmp dword [ebp + 0x4c], 0xc0
jl 0x4a8707
mov ecx, dword [ebp + 0x50]
jmp 0x4a784a
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x34], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a7840
jmp 0x4a8707
push dword [ebp + 0x68]
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [esi + 1]
call fcn.004a5a93
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp dword [eax], 0
jne 0x4a9211
jmp 0x4a880f
test byte [ebp + 0x34], 2
je 0x4a7892
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a7892
or dword [ebp + 0x28], 0xffffffff
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x19
jmp 0x4a7baf
push 0
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x2c], esi
push dword [ebp + 0x68]
push eax
call fcn.004a56de
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x4a9211
test eax, eax
jge 0x4a7bb5
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x4a78f5
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x4a78e9
add eax, 2
cmp byte [eax], 0x45
je 0x4a6b9b
mov dword [ebp + 4], 1
jmp 0x4a9084
cmp ecx, 0x18
je 0x4a9084
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a7912
cmp ecx, 5
jle 0x4a7912
cmp ecx, 0x16
jge 0x4a7912
or dword [ebp + 0x28], 0xffffffff
cmp ecx, 0x1a
mov edx, dword [ebp + 0x28]
mov dword [ebp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], edx
jne 0x4a7b2f
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x4a7940
cmp dl, 0x27
je 0x4a7940
cmp dl, 0x7b
jne 0x4a7b2f
and dword [ebp + 0x40], 0
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x4a7954
push 0x3e
jmp 0x4a73f5
xor edx, edx
cmp al, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
mov ecx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x18], esi
je 0x4a7984
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x4a7977
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x4a79b4
test eax, eax
je 0x4a916f
movzx ecx, byte [esi]
cmp ecx, edx
jne 0x4a9117
cmp eax, 0x20
jg 0x4a7518
and dword [ebp + 0x4c], 0
jmp 0x4a7a2b
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4a79ef
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004b2218
add esp, 0xc
test eax, eax
jne 0x4a79e1
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
je 0x4a79ef
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x4a79c1
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x4a7a02
movzx eax, byte [esi + 1]
mov ah, byte [esi]
mov dword [ebp + 0x4c], eax
jmp 0x4a7a2b
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x18]
call fcn.004a5b28
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x4a7397
cmp dword [ebp + 0x40], 0
je 0x4a7b3c
mov eax, dword [edi + 0x14]
xor esi, esi
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x3c], eax
jne 0x4a7ae2
cmp dword [ebp + 0x4c], esi
mov byte [ebx], 0
je 0x4a7a64
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.004a5ee8
pop ecx
pop ecx
mov dword [ebp + 0x3c], eax
cmp eax, esi
jne 0x4a7ab9
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x30]
push esi
call fcn.004a5b28
add esp, 0xc
test eax, eax
jl 0x4a7397
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x4c]
add ecx, eax
mov dword [ebp + 0x3c], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [edi + 0x20]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
jmp 0x4a7adf
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x4a7ae2
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x3c]
call fcn.004a620a
add esp, 0xc
test eax, eax
jne 0x4a917d
mov eax, dword [ebp + 0x3c]
mov byte [ebx], 0x5c
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x51
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [edi + 0x14]
mov byte [ebx - 1], al
mov byte [ebx], 0x54
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x28], 0xfffffffe
mov dword [ebp - 8], 9
jne 0x4a9084
or dword [ebp + 0x28], 0xffffffff
jmp 0x4a9084
cmp ecx, 0x1b
jl 0x4a7b7d
push 0xffffffffffffffe5
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a7b46
or dword [ebp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x4c]
mov byte [ebx], 0x50
mov dword [ebp + 0x48], ebx
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
xor eax, eax
inc ebx
inc eax
cmp ecx, 0x20
jge 0x4a7b66
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x4a9084
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x38], eax
jmp 0x4a9084
cmp ecx, 0x15
je 0x4a918b
cmp ecx, 0xe
je 0x4a918b
cmp ecx, 0xf
je 0x4a918b
cmp ecx, 5
jle 0x4a7ba7
cmp ecx, 0x16
jge 0x4a7ba7
mov dword [ebp + 0x48], ebx
jmp 0x4a7bab
and dword [ebp + 0x48], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x4a9084
cmp dword [ebp + 0x1c], 0
je 0x4a8701
cmp eax, 0x7f
jle 0x4a8701
lea ecx, [ebp - 0x34]
push ecx
push eax
jmp 0x4a86f6
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x4a7be4
cmp al, 0x2e
je 0x4a7be4
cmp al, 0x3d
jne 0x4a7bfb
lea eax, [ebp - 0x2c]
push eax
mov eax, esi
call fcn.004a623c
test eax, eax
pop ecx
jne 0x4a9196
mov esi, dword [ebp + 0x50]
and dword [ebp + 0x18], 0
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
cmp eax, 0x5c
mov dword [ebp + 0x4c], eax
jne 0x4a7c30
inc esi
cmp byte [esi], 0x45
je 0x4a7bff
push 3
push 0x468560
push esi
call fcn.004b2218
add esp, 0xc
test eax, eax
jne 0x4a7c44
mov esi, dword [ebp + 0x50]
add esi, 3
jmp 0x4a7bff
cmp dword [ebp + 0x18], 0
jne 0x4a7c44
cmp eax, 0x5e
jne 0x4a7c44
mov dword [ebp + 0x18], 1
jmp 0x4a7bff
or dword [ebp + 8], 0xffffffff
xor esi, esi
push 0x20
lea eax, [ebp - 0x54]
push esi
push eax
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x38], esi
call fcn.004b1320
mov dword [ebp + 0x3c], esi
add esp, 0xc
cmp dword [ebp + 0x4c], 0
lea esi, [ebx + 4]
mov dword [ebp - 0x24], esi
je 0x4a91dc
cmp dword [ebp + 0x1c], 0
je 0x4a7cdf
cmp dword [ebp + 0x4c], 0x7f
jle 0x4a7cdf
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
cmp eax, 0xc0
mov dword [ebp + 0x4c], eax
jl 0x4a7cdf
and eax, 0x3f
movzx eax, byte [eax + 0x468680]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x468664]
and eax, dword [ebp + 0x4c]
xor edx, edx
shl eax, cl
inc edx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
cmp eax, edx
jl 0x4a7cdc
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x4c], eax
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x20], eax
jle 0x4a7cbc
add dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x4a7cef
mov ecx, esi
mov esi, dword [ebp - 0x24]
sub ecx, esi
add dword [eax], ecx
cmp dword [ebp + 4], 0
je 0x4a7d18
cmp dword [ebp + 0x4c], 0x5c
jne 0x4a830b
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x4a830b
and dword [ebp + 4], 0
mov dword [ebp + 0x50], eax
jmp 0x4a8608
cmp dword [ebp + 0x4c], 0x5b
jne 0x4a7e7e
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x4a7d38
cmp al, 0x2e
je 0x4a7d38
cmp al, 0x3d
jne 0x4a830b
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x50]
call fcn.004a623c
test eax, eax
pop ecx
je 0x4a830b
mov eax, dword [edi + 8]
and dword [ebp + 0x2c], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x4a91b0
add dword [ebp + 0x50], 2
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x5e
jne 0x4a7d7c
xor eax, eax
inc eax
inc dword [ebp + 0x50]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 0x50]
push eax
push dword [ebp + 0x50]
call fcn.004a627c
test eax, eax
pop ecx
pop ecx
jl 0x4a91bb
test byte [ebp + 0x34], 1
je 0x4a7da2
cmp eax, 2
jg 0x4a7da2
xor eax, eax
imul eax, eax, 3
shl eax, 2
mov dword [ebp], eax
mov eax, dword [eax + 0x467ab0]
add eax, dword [ebp + 0x40]
push 0x20
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.004af930
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x467ab4]
mov ecx, dword [ecx + 0x467ab8]
add esp, 0xc
test eax, eax
mov dword [ebp], ecx
jl 0x4a7e1b
test ecx, ecx
mov edx, dword [ebp + 0x40]
jl 0x4a7dff
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
or byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0x20
jl 0x4a7dea
jmp 0x4a7e1b
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
not al
and byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0x20
jl 0x4a7e06
mov eax, dword [ebp]
test eax, eax
jge 0x4a7e24
neg eax
cmp eax, 1
jne 0x4a7e32
and byte [ebp - 0x93], 0xc3
jmp 0x4a7e3e
cmp eax, 2
jne 0x4a7e3e
and byte [ebp - 0x89], 0x7f
xor eax, eax
cmp dword [ebp + 0x2c], eax
je 0x4a7e5a
mov cl, byte [ebp + eax - 0x94]
not cl
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4a7e45
jmp 0x4a7e6b
mov cl, byte [ebp + eax - 0x94]
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4a7e5a
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], 0xa
jmp 0x4a8608
cmp dword [ebp + 0x4c], 0x5c
jne 0x4a830b
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004a56de
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x4a9211
mov edx, dword [ebp + 0x4c]
neg edx
cmp edx, 5
jne 0x4a7ec4
mov dword [ebp + 0x4c], 8
jmp 0x4a830b
cmp edx, 0x15
jne 0x4a7ed5
mov dword [ebp + 0x4c], 0x58
jmp 0x4a830b
cmp edx, 0x10
jne 0x4a7ee6
mov dword [ebp + 0x4c], 0x52
jmp 0x4a830b
cmp edx, 0x19
jne 0x4a7f0c
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x4a7f00
add eax, 2
cmp byte [eax], 0x45
je 0x4a7d10
mov dword [ebp + 4], 1
jmp 0x4a8608
cmp edx, 0x18
je 0x4a8608
cmp dword [ebp + 0x4c], 0
jge 0x4a830b
add dword [ebp + 0x38], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x4a803a
mov ecx, edx
sub ecx, 6
je 0x4a8012
dec ecx
je 0x4a7ff3
dec ecx
je 0x4a7fc4
dec ecx
je 0x4a7f9e
dec ecx
je 0x4a7f73
dec ecx
jne 0x4a8073
and dword [ebp + 0x4c], ecx
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0xa0]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4a7f55
jmp 0x4a8608
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x24], 1
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0xa0]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4a7f7e
jmp 0x4a8608
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x54]
xor edx, edx
sub dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x20]
lea ecx, [ebp + edx - 0x54]
mov al, byte [ecx + eax]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x4a7fa9
and byte [ebp - 0x53], 0xf7
jmp 0x4a8608
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x54]
xor edx, edx
sub dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x20]
lea ecx, [ebp + edx - 0x54]
mov al, byte [ecx + eax]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x4a7fd6
or byte [ebp - 0x53], 8
jmp 0x4a8608
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0x40]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4a7ff7
jmp 0x4a8608
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x24], 1
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0x40]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4a801d
jmp 0x4a8608
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x4a8608
cmp eax, 0xfffffffa
je 0x4a8608
cmp eax, 0xfffffff5
je 0x4a8608
cmp eax, 0xfffffff6
je 0x4a8608
cmp eax, 0xfffffff7
je 0x4a8608
cmp eax, 0xfffffff8
je 0x4a8608
cmp edx, 0x12
jne 0x4a8114
or byte [ebp - 0x53], 2
or byte [ebp - 0x50], 1
or byte [ebp - 0x40], 1
cmp dword [ebp + 0x1c], 0
je 0x4a8608
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp + 0x3c], 1
call fcn.004aee86
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.004aee86
add esi, eax
push esi
push 0x200a
call fcn.004aee86
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.004aee86
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.004aee86
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.004aee86
add esp, 0x38
add esi, eax
jmp 0x4a8608
cmp edx, 0x11
jne 0x4a8235
xor ecx, ecx
mov eax, ecx
dec eax
mov edx, 0xff
je 0x4a813a
sub eax, 3
je 0x4a8133
sub eax, 0x10
jne 0x4a813f
mov edx, 0xfe
jmp 0x4a813f
mov edx, 0xfd
or byte [ebp + ecx - 0x54], dl
inc ecx
cmp ecx, 0x20
jl 0x4a811f
cmp dword [ebp + 0x1c], 0
je 0x4a8608
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.004aee86
add esi, eax
push esi
push 0x167f
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.004aee86
add esi, eax
push esi
push 0x180d
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.004aee86
add esi, eax
push esi
push 0x1fff
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.004aee86
add esi, eax
push esi
push 0x202e
call fcn.004aee86
add esi, eax
add esp, 0x40
mov byte [esi], 2
inc esi
push esi
push 0x2030
call fcn.004aee86
add esi, eax
push esi
push 0x205e
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.004aee86
add esi, eax
push esi
push 0x2fff
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.004aee86
add esi, eax
push esi
push 0x7fffffff
call fcn.004aee86
add esp, 0x30
jmp 0x4a810d
cmp edx, 0x14
jne 0x4a8277
or byte [ebp - 0x53], 0x3c
or byte [ebp - 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x4a8608
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [ebp + 0x3c], 1
call fcn.004aee86
add esi, eax
push esi
push 0x2029
call fcn.004aee86
add esp, 0x10
jmp 0x4a810d
cmp edx, 0x13
jne 0x4a82f4
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x4a8292
sub edx, 0xf
jne 0x4a8297
add ecx, 0xffffffe0
jmp 0x4a8297
mov ecx, 0xc3
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4a827e
cmp dword [ebp + 0x1c], 0
je 0x4a8608
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.004aee86
add esi, eax
push esi
push 0x2027
call fcn.004aee86
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.004aee86
add esi, eax
push esi
push 0x7fffffff
call fcn.004aee86
add esp, 0x20
jmp 0x4a810d
test byte [ebp + 0x34], 0x40
jne 0x4a91c6
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
sub dword [ebp + 0x38], 2
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x50]
jmp 0x4a8321
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x4a8327
and dword [ebp + 4], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x4a8310
cmp dword [ebp + 0x4c], 0xd
mov dword [ebp], eax
je 0x4a8336
cmp dword [ebp + 0x4c], 0xa
jne 0x4a833a
or dword [edi + 0x44], 0x20
cmp dword [ebp + 4], 0
jne 0x4a8583
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x4a8583
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4a8399
cmp byte [eax + 1], 0x45
jne 0x4a838b
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4a835e
jmp 0x4a838b
cmp byte [eax + 1], 0x51
jne 0x4a8399
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4a8392
cmp byte [eax + 1], 0x45
jne 0x4a8392
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4a8370
jmp 0x4a8399
mov dword [ebp + 4], 1
mov al, byte [eax]
test al, al
je 0x4a857d
cmp dword [ebp + 4], 0
jne 0x4a83b1
cmp al, 0x5d
je 0x4a857d
cmp dword [ebp + 0x1c], 0
je 0x4a8419
movzx edx, al
cmp edx, 0xc0
mov dword [ebp + 0x44], edx
jl 0x4a841f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x468680]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x468664]
and eax, edx
shl eax, cl
xor edx, edx
inc edx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
cmp eax, edx
jl 0x4a8414
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x44], eax
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x20], eax
jle 0x4a83f4
add dword [ebp + 0x50], eax
jmp 0x4a841f
movzx eax, al
mov dword [ebp + 0x44], eax
cmp dword [ebp + 4], 0
jne 0x4a8484
cmp dword [ebp + 0x44], 0x5c
jne 0x4a8484
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004a56de
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x4a9211
mov eax, dword [ebp + 0x44]
test eax, eax
jge 0x4a8484
cmp eax, 0xfffffffb
jne 0x4a8466
mov dword [ebp + 0x44], 8
jmp 0x4a8484
cmp eax, 0xffffffeb
jne 0x4a8474
mov dword [ebp + 0x44], 0x58
jmp 0x4a8484
cmp eax, 0xfffffff0
jne 0x4a857d
mov dword [ebp + 0x44], 0x52
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp + 0x4c]
jl 0x4a91d1
je 0x4a8583
cmp eax, 0xd
je 0x4a84a0
cmp eax, 0xa
jne 0x4a84a4
or dword [edi + 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x4a84f9
cmp eax, 0xff
jg 0x4a84bc
test byte [ebp + 0x34], 1
je 0x4a84f9
cmp eax, 0x7f
jle 0x4a84f9
mov byte [esi], 2
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.004aee86
add esi, eax
push esi
push dword [ebp + 0x44]
call fcn.004aee86
add esp, 0x10
add esi, eax
test byte [ebp + 0x34], 1
je 0x4a8608
push 0x7f
pop eax
cmp dword [ebp + 0x4c], eax
jg 0x4a8608
mov dword [ebp + 0x44], eax
mov edx, dword [ebp + 0x38]
mov ecx, eax
sub ecx, dword [ebp + 0x4c]
cmp dword [ebp + 0x7c], 0
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x38], ecx
mov dword [ebp + 8], eax
jne 0x4a8608
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x4c], eax
jg 0x4a8608
mov eax, dword [ebp + 0x34]
and eax, 1
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
cmp dword [ebp + 0x2c], 0
je 0x4a856d
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x44]
jle 0x4a852a
jmp 0x4a8608
mov eax, dword [ebp]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x4a85b9
cmp dword [ebp + 0x4c], 0xff
jg 0x4a859e
test byte [ebp + 0x34], 1
je 0x4a85b9
cmp dword [ebp + 0x4c], 0x7f
jle 0x4a85b9
mov byte [esi], 1
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.004aee86
pop ecx
pop ecx
jmp 0x4a810d
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
test byte [ebp + 0x34], 1
je 0x4a85ff
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov dword [ebp + 0x4c], ecx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x38]
mov dword [ebp + 8], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
test eax, eax
mov dword [ebp + 0x4c], eax
je 0x4a91dc
cmp eax, 0x5d
jne 0x4a7c72
cmp dword [ebp + 4], 0
jne 0x4a7c72
xor ecx, ecx
cmp dword [ebp + 0x38], 1
jne 0x4a8650
cmp dword [ebp + 0x3c], ecx
jne 0x4a8650
cmp dword [ebp + 0x1c], ecx
je 0x4a86be
cmp dword [ebp + 0x18], ecx
je 0x4a86be
mov eax, dword [ebp + 8]
cmp eax, 0x80
jl 0x4a86c1
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a865a
or dword [ebp + 0x28], 0xffffffff
cmp dword [ebp + 0x3c], ecx
mov eax, dword [ebp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4a87bf
cmp dword [ebp + 0x24], ecx
jne 0x4a87bf
mov byte [esi], 0
mov byte [ebx], 0x4f
add ebx, 3
inc esi
cmp dword [ebp + 0x18], ecx
setne al
cmp dword [ebp + 0x38], ecx
mov byte [ebx], al
jle 0x4a87a4
or al, 2
mov byte [ebx], al
inc ebx
mov eax, esi
sub eax, ebx
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.004b2d90
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.004af930
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x4a87a6
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], edx
je 0x4a86e5
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4a86d6
or dword [ebp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x28]
mov byte [ebx], 0x1d
mov dword [ebp + 8], ecx
inc ebx
jmp 0x4a7bad
cmp dword [ebp + 0x1c], ecx
je 0x4a8701
cmp eax, 0x7f
jle 0x4a8701
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.004aee86
pop ecx
mov esi, eax
pop ecx
jmp 0x4a8707
xor esi, esi
inc esi
mov byte [ebp - 0x34], al
test byte [ebp + 0x34], 1
mov dword [ebp + 0x48], ebx
setne al
add al, 0x1b
mov byte [ebx], al
inc ebx
xor eax, eax
test esi, esi
jle 0x4a8728
mov cl, byte [ebp + eax - 0x34]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x4a871c
cmp byte [ebp - 0x34], 0xd
je 0x4a8734
cmp byte [ebp - 0x34], 0xa
jne 0x4a8738
or dword [edi + 0x44], 0x20
mov eax, dword [ebp + 0x28]
cmp eax, 0xfffffffe
jne 0x4a877d
or dword [ebp + 8], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4a875e
cmp dword [ebp - 0x20], 0
je 0x4a875e
or dword [ebp + 0xc], 0xffffffff
jmp 0x4a7b26
movzx eax, byte [ebp - 0x34]
or eax, dword [ebp - 0x20]
cmp esi, 1
mov dword [ebp + 0x28], eax
je 0x4a9084
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
jmp 0x4a7773
cmp esi, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4a8795
cmp dword [ebp - 0x20], 0
jne 0x4a9084
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
or eax, dword [ebp - 0x20]
jmp 0x4a7773
mov ebx, esi
mov eax, dword [ebp + 0x48]
mov ecx, ebx
sub ecx, eax
sar ecx, 8
mov byte [eax + 1], cl
mov cl, bl
sub cl, al
mov byte [eax + 2], cl
jmp 0x4a9084
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x24]
setne dl
add dl, 0x4d
mov byte [ebx], dl
inc ebx
cmp eax, ecx
je 0x4a87ee
cmp dword [ebp + 0x7c], ecx
jne 0x4a87fd
lea eax, [ebp - 0x54]
push 0x20
mov esi, ebx
sub eax, ebx
pop ecx
mov dl, byte [eax + esi]
not dl
mov byte [esi], dl
inc esi
dec ecx
jne 0x4a87e1
jmp 0x4a87fd
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.004af930
add esp, 0xc
add ebx, 0x20
jmp 0x4a9084
mov dword [ebp + 0x30], 1
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x4a91e7
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4a882d
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0xc], ecx
sub eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x40], 0
and dword [ebp + 0x3c], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x74], eax
mov dword [ebp + 0x10], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x4a8864
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x50], ecx
jmp 0x4a8873
cmp al, 0x3f
jne 0x4a8870
mov eax, dword [ebp - 0x6c]
mov dword [ebp + 0x50], ecx
jmp 0x4a8873
mov eax, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1b
mov dword [ebp + 0x44], eax
je 0x4a8d28
cmp cl, 0x1c
je 0x4a8d28
cmp cl, 0x1d
jne 0x4a88c8
cmp dword [ebp + 0x3c], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x40], 0xd
mov dword [ebp + 0x4c], eax
jne 0x4a8d8d
cmp dword [ebp + 0x30], 0
jge 0x4a8d8d
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x4c]
push 0x1d
jmp 0x4a8d73
cmp cl, 0x16
jae 0x4a8905
cmp dword [ebp + 0x3c], 0
movzx eax, cl
mov dword [ebp + 0x40], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x4a8d8d
cmp dword [ebp + 0x30], 0
jge 0x4a8d8d
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push 0
push dword [ebp + 0x4c]
jmp 0x4a8d73
cmp cl, 0x4d
je 0x4a8cae
cmp cl, 0x4e
je 0x4a8cae
cmp cl, 0x4f
je 0x4a8cae
cmp cl, 0x50
je 0x4a8cae
cmp cl, 0x5d
je 0x4a8941
cmp cl, 0x5e
je 0x4a8941
cmp cl, 0x5c
je 0x4a8941
cmp cl, 0x5f
jne 0x4a91f2
and dword [ebp], 0
and dword [ebp + 0x18], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5f
mov dword [ebp + 0x38], eax
jne 0x4a895f
cmp byte [edx + 3], 0x65
je 0x4a91fd
cmp dword [ebp + 0x30], 0xffffffff
jne 0x4a897d
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x4a8967
mov ecx, ebx
sub ecx, eax
mov dword [ebp], ecx
cmp dword [ebp + 0x14], 0
jne 0x4a8a20
cmp dword [ebp + 0x30], 0
je 0x4a8cb4
cmp dword [ebp + 0x30], 1
push dword [ebp - 0xc]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x4a89d0
push 1
push dword [ebp + 0x48]
call fcn.004a62c6
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x38]
lea esi, [eax + 1]
push eax
push esi
call fcn.004b2d90
mov al, byte [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
add esp, 0x1c
inc ebx
add al, 0x66
mov byte [ecx], al
mov dword [ebp + 0x48], esi
jmp 0x4a8a0f
push 4
push dword [ebp + 0x48]
call fcn.004a62c6
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.004b2d90
mov cl, byte [ebp + 0x44]
mov eax, dword [ebp + 0x48]
add cl, 0x66
mov byte [eax], cl
add esp, 0x1c
add ebx, 4
inc eax
mov byte [eax], 0x5d
inc eax
mov dword [ebp + 0x18], eax
mov byte [eax], 0
mov byte [eax + 1], 0
inc eax
inc eax
mov dword [ebp + 0x48], eax
dec dword [ebp + 0x30]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
mov edi, dword [ebp + 0x78]
jmp 0x4a8af1
cmp dword [ebp + 0x14], 1
jle 0x4a8ae4
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4a8a71
mov eax, dword [ebp + 0x14]
dec eax
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 8]
fild dword [ebp - 0x24]
fimul dword [ebp - 8]
mov dword [ebp + 0x2c], eax
fcomp qword [0x468558]
fnstsw ax
test ah, 0x41
je 0x4a9208
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x2c]
jl 0x4a9208
mov edx, dword [ebp + 0x2c]
add edx, eax
mov dword [ecx], edx
jmp 0x4a8ae4
cmp dword [ebp - 0x5c], 0
je 0x4a8a83
cmp dword [ebp + 0xc], 0
jge 0x4a8a83
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0x14], 1
jle 0x4a8ae4
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp - 0xc]
dec eax
mov dword [ebp + 0x2c], eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x40], eax
push ebx
call fcn.004af930
add esp, 0xc
jmp 0x4a8ace
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x38]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x38]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x40]
jb 0x4a8aaa
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x2c]
mov dword [ebp - 0xc], esi
jne 0x4a8a93
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
test ecx, ecx
jle 0x4a8af3
sub ecx, dword [ebp + 0x14]
mov dword [ebp + 0x30], ecx
test ecx, ecx
jl 0x4a8c4b
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x4a8b46
test ecx, ecx
jle 0x4a8b46
mov eax, dword [ebp - 8]
add eax, 7
mov dword [ebp - 0x24], eax
imul eax, ecx
fild dword [ebp - 0x24]
fimul dword [ebp + 0x30]
sub eax, 6
mov ecx, eax
fcomp qword [0x468558]
fnstsw ax
test ah, 0x41
je 0x4a9208
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x4a9208
add ecx, eax
mov dword [edx], ecx
jmp 0x4a8c03
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x24], eax
jl 0x4a8c03
mov al, byte [ebp + 0x44]
add al, 0x66
mov byte [ebp - 0xd], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 0xd]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x24], 0
mov dword [ebp + 0x2c], esi
je 0x4a8b8e
mov eax, dword [ebp + 0x18]
mov byte [ebx], 0x5d
inc ebx
mov ecx, ebx
sub ecx, eax
neg eax
sbb eax, eax
and eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [ebp + 0x18], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x38]
push dword [ebp + 0x48]
push ebx
call fcn.004af930
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, esi
jae 0x4a8bf1
mov esi, dword [ebp + 0x24]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x24], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp - 0x15], cl
mov edx, dword [edi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, esi
add ecx, dword [ebp + 0x38]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp - 0x15]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 0x38]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x2c]
jb 0x4a8bc0
mov esi, dword [ebp + 0x2c]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x24]
mov dword [ebp - 0xc], esi
jns 0x4a8b5c
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x4a8f6b
mov esi, dword [ebp + 0x18]
xor edx, edx
mov ecx, ebx
sub ecx, esi
inc ecx
mov eax, ebx
sub eax, ecx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov byte [ebx], 0x54
mov byte [ebx + 2], cl
sub esi, edx
mov dword [ebp + 0x2c], edx
neg edx
sbb edx, edx
and esi, edx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
inc ebx
inc ebx
test esi, esi
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jne 0x4a8c10
jmp 0x4a8f68
xor eax, eax
mov esi, ebx
sub esi, dword [ebp]
mov ah, byte [esi + 1]
mov edi, esi
mov al, byte [esi + 2]
sub edi, eax
mov al, byte [ebp + 0x44]
add al, 0x55
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x4a8f68
cmp byte [edi], 0x5c
je 0x4a8f68
mov dword [ebp + 0x40], edi
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x40]
call fcn.004a601d
add esp, 0xc
test eax, eax
jne 0x4a8ca6
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
mov dword [ebp + 0x40], eax
je 0x4a8c79
jmp 0x4a8f68
add byte [edi], 3
jmp 0x4a8f68
cmp dword [ebp + 0x30], 0
jne 0x4a8cbb
mov ebx, edx
jmp 0x4a9077
mov ecx, dword [ebp + 0x30]
cmp ecx, 1
je 0x4a8cc7
or dword [edi + 0x44], 1
cmp dword [ebp + 0x14], 0
jne 0x4a8cd9
cmp ecx, 0xffffffff
jne 0x4a8ceb
add al, 0x45
jmp 0x4a8f65
cmp dword [ebp + 0x14], 1
jne 0x4a8cf7
cmp ecx, 0xffffffff
jne 0x4a8cf7
add al, 0x47
jmp 0x4a8f65
cmp ecx, 1
jne 0x4a8cf7
add al, 0x49
jmp 0x4a8f65
add al, 0x4b
mov byte [ebx], al
mov eax, dword [ebp + 0x14]
inc ebx
mov edx, eax
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
inc ebx
inc ebx
cmp ecx, 0xffffffff
jne 0x4a8d17
and dword [ebp + 0x30], 0
mov ecx, dword [ebp + 0x30]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x4a8f68
cmp dword [ebp + 0x1c], 0
je 0x4a8d36
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x4a8da5
cmp dword [ebp + 0x14], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x4a8d4e
mov edi, dword [edi + 0x48]
or edi, eax
or edi, dword [ebp - 0x20]
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0x3c], 0
jne 0x4a8d8d
cmp dword [ebp + 0x30], 0
jge 0x4a8d8d
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x48]
movzx eax, byte [eax]
push dword [ebp + 0x4c]
push eax
mov edi, dword [ebp + 0x78]
call fcn.004a638c
add esp, 0x18
test eax, eax
je 0x4a8d8d
and dword [ebp + 0x44], 0
mov dword [ebp + 0x3c], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xf
je 0x4a8dcb
cmp al, 0xe
je 0x4a8dcb
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x24], 0xffffffff
jmp 0x4a8dd9
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a8da4
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x68]
push eax
call fcn.004af930
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x4a8d4e
movzx eax, byte [ecx + 1]
mov dword [ebp + 0x24], eax
movzx eax, byte [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x30], 0
mov esi, ebx
mov ebx, ecx
je 0x4a9077
mov edx, dword [ebp + 0x30]
cmp edx, 1
je 0x4a8df6
mov eax, dword [ebp + 0x78]
or dword [eax + 0x44], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
add eax, ecx
cmp dword [ebp + 0x14], 0
mov dword [ebp + 0x44], eax
jne 0x4a8e2b
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x4a8ec7
cmp edx, 1
je 0x4a8f23
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x4a8f34
cmp dword [ebp + 0x14], 1
jne 0x4a8e6a
cmp edx, 0xffffffff
jne 0x4a8e40
mov ebx, dword [ebp + 0x48]
add al, 0x20
jmp 0x4a8f25
cmp edx, 1
mov ebx, esi
je 0x4a9077
mov al, byte [ebp + 0x44]
add al, 0x24
mov byte [esi], al
mov eax, dword [ebp + 0x30]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x4a8f39
mov ebx, dword [ebp + 0x48]
add cl, 0x26
mov byte [ebx], cl
mov ecx, dword [ebp + 0x14]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x14]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x4a8ecb
cmp dword [ebp + 0x1c], 0
je 0x4a8eb1
cmp dword [ebp + 0x4c], 0x80
jl 0x4a8eb1
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.004af930
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x4a8ec7
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x24]
inc ebx
test ecx, ecx
jl 0x4a8ec7
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1e
jmp 0x4a8f25
mov ecx, dword [ebp + 0x14]
cmp dword [ebp + 0x30], ecx
je 0x4a8f3b
cmp dword [ebp + 0x1c], 0
je 0x4a8efd
cmp dword [ebp + 0x4c], 0x80
jl 0x4a8efd
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.004af930
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x4a8f03
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x24], 0
mov ecx, dword [ebp + 0x30]
jl 0x4a8f18
mov dl, byte [ebp + 0x24]
mov byte [ebx], dl
mov dl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [ebp + 0x14]
cmp ecx, 1
mov dword [ebp + 0x30], ecx
jne 0x4a8f2a
add al, 0x22
mov byte [ebx], al
inc ebx
jmp 0x4a8f3b
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, ecx
mov byte [ebx + 1], cl
sar eax, 8
mov byte [ebx], al
inc ebx
inc ebx
cmp dword [ebp + 0x1c], 0
je 0x4a8f62
cmp dword [ebp + 0x4c], 0x80
jl 0x4a8f62
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.004af930
add esp, 0xc
add ebx, esi
jmp 0x4a8f68
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x3c], 0
je 0x4a9077
mov cl, byte [esi]
cmp cl, 0x26
je 0x4a8f86
cmp cl, 0x40
je 0x4a8f8b
cmp cl, 0x33
jne 0x4a8fae
cmp cl, 0x40
jne 0x4a8f9b
mov al, byte [esi + 3]
cmp al, 0xf
je 0x4a8f96
cmp al, 0xe
jne 0x4a8f9b
push 2
pop eax
jmp 0x4a8f9d
xor eax, eax
movzx ecx, cl
movzx ecx, byte [ecx + 0x4685c0]
add ecx, eax
add esi, ecx
mov dword [ebp + 0x10], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x2c], eax
jle 0x4a9077
movzx eax, byte [esi]
cmp eax, 0x2f
jg 0x4a900d
je 0x4a9008
sub eax, 0x1e
je 0x4a9003
push 2
pop ecx
sub eax, ecx
je 0x4a8ffe
sub eax, ecx
je 0x4a8ff9
sub eax, ecx
je 0x4a8ff4
sub eax, 7
je 0x4a8fec
sub eax, ecx
jne 0x4a9023
mov byte [esi], 0x35
jmp 0x4a9077
mov byte [esi], 0x34
jmp 0x4a9077
mov byte [esi], 0x2a
jmp 0x4a9077
mov byte [esi], 0x29
jmp 0x4a9077
mov byte [esi], 0x28
jmp 0x4a9077
mov byte [esi], 0x27
jmp 0x4a9077
mov byte [esi], 0x36
jmp 0x4a9077
sub eax, 0x31
je 0x4a9074
sub eax, 7
je 0x4a906f
dec eax
dec eax
je 0x4a906a
dec eax
dec eax
je 0x4a9065
dec eax
dec eax
je 0x4a9060
push dword [ebp + 0x2c]
push esi
add esi, 3
push esi
call fcn.004b2d90
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x2c]
mov byte [eax], 0x5c
add ecx, 3
add ebx, 3
mov byte [ebx], 0x54
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x10]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x10]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x4a9077
mov byte [esi], 0x44
jmp 0x4a9077
mov byte [esi], 0x43
jmp 0x4a9077
mov byte [esi], 0x42
jmp 0x4a9077
mov byte [esi], 0x41
jmp 0x4a9077
mov byte [esi], 0x37
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x48], eax
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x4a6aee
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3e
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x4a9211
mov ecx, dword [ebp + 0x50]
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov ecx, dword [ebp + 0x68]
mov dword [ecx], eax
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x4a9211
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x14
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x64]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret