Function at 0x4469b0
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 0x446aae
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x448fcf
cmp ebx, dword [ebp - 0x14]
jae 0x446a53
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 0x449148
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 0x446aa3
cmp eax, dword [ebp - 0x58]
jbe 0x446aa6
mov esi, dword [ebp - 0x58]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.00452e30
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 0x446aa6
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x14], ebx
jmp 0x446ac0
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x448fcf
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x446b21
cmp eax, ecx
je 0x446b21
cmp eax, 0x5c
jne 0x446ae3
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x446ae3
mov dword [ebp + 4], ecx
mov dword [ebp + 0x50], eax
jmp 0x448fc4
cmp dword [ebp - 4], ecx
je 0x446aff
cmp dword [ebp + 0x7c], ecx
jne 0x446afb
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.004462af
add esp, 4
and dword [ebp - 4], 0
test word [ebp + 0x34], 0x4000
je 0x44775b
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.0044628b
mov ebx, eax
jmp 0x44775b
cmp eax, 0x2a
je 0x446b93
cmp eax, 0x2b
je 0x446b93
cmp eax, 0x3f
je 0x446b93
cmp eax, 0x7b
jne 0x446b41
lea eax, [esi + 1]
call fcn.00445971
test eax, eax
jne 0x446b93
and dword [ebp + 0x40], 0
cmp dword [ebp - 4], 0
je 0x446b70
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x28]
test eax, eax
jg 0x446b70
cmp dword [ebp + 0x7c], 0
jne 0x446b6c
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.004462af
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp - 4], 0
test byte [ebp + 0x34], 8
je 0x446be6
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x448fc4
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x446be6
jmp 0x446c7a
mov dword [ebp + 0x40], 1
jmp 0x446b70
mov ecx, dword [edi + 0x50]
test ecx, ecx
je 0x446c54
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x446c7a
push dword [ebp + 0x1c]
lea edx, [edi + 0x54]
push edx
push eax
push ecx
push esi
call fcn.0044ec23
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x446c7a
mov eax, dword [edi + 0x54]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x448fc4
and dword [ebp + 0x4c], 0
xor edx, edx
test word [ebp + 0x34], 0x4000
je 0x446c0b
cmp dword [ebp + 0x40], edx
jne 0x446c0b
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.0044628b
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x4476e7
je 0x4476c6
sub eax, edx
je 0x447710
sub eax, 0x24
je 0x4476bb
sub eax, 4
je 0x446c96
dec eax
je 0x447710
dec eax
je 0x446c8d
dec eax
jne 0x44775b
or dword [ebp + 0x30], 0xffffffff
mov dword [ebp + 0x14], 1
jmp 0x44874f
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x446c7a
cmp al, byte [edi + 0x58]
jne 0x446c7a
cmp ecx, 1
je 0x446bcf
mov al, byte [esi + 1]
cmp al, byte [edi + 0x59]
je 0x446bcf
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x446b9c
jmp 0x446be2
or dword [ebp + 0x30], 0xffffffff
jmp 0x44874c
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 0x446d7f
mov ecx, dword [edi + 0xc]
lea edx, [esi + 1]
mov dword [ebp + 0x40], edx
movzx edx, byte [edx]
test byte [edx + ecx], 2
je 0x446d7f
mov esi, dword [ebp + 0x40]
and dword [ebp + 0x48], 0
mov dword [ebp + 0x3c], str.ACCEPT
mov dword [ebp + 0x40], esi
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x446ce4
mov al, byte [esi]
cmp al, 0x3a
je 0x448fdd
cmp al, 0x29
jne 0x446d71
sub esi, dword [ebp + 0x40]
xor eax, eax
cmp dword [0x472038], eax
mov dword [ebp + 0x24], eax
jle 0x446d71
cmp esi, dword [eax*8 + section..data]
jne 0x446d2e
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x40]
call fcn.004517db
add esp, 0xc
test eax, eax
mov eax, dword [ebp + 0x24]
je 0x446d4d
mov ecx, dword [eax*8 + section..data]
mov edx, dword [ebp + 0x3c]
inc eax
cmp eax, dword [0x472038]
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x24], eax
jl 0x446d0f
jmp 0x446d62
mov al, byte [eax*8 + 0x472004]
mov byte [ebx], al
inc ebx
cmp al, 0x6d
jne 0x446d62
mov dword [edi + 0x4c], 1
mov eax, dword [ebp + 0x24]
cmp eax, dword [0x472038]
jl 0x448fc4
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x449151
cmp al, 0x3f
jne 0x447547
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x4470df
je 0x447118
cmp eax, 0x28
jg 0x4470c2
je 0x446e52
sub eax, 0x21
je 0x446e06
dec eax
dec eax
je 0x446dd7
sub eax, 3
je 0x446dc8
dec eax
je 0x4473e5
jmp 0x447172
push 0x29
pop edx
mov dword [ebp + 0x40], 1
jmp 0x4478a2
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x446df8
cmp al, 0x29
je 0x446def
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x446de1
cmp byte [esi], 0
jne 0x448fc4
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x449151
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x446e1c
mov byte [ebx], 0x6c
inc ebx
and dword [ebp + 0x48], 0
jmp 0x448fc4
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 0x447558
cmp eax, 0x5a
je 0x447558
xor eax, eax
jmp 0x44755b
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x38], 0x5f
jne 0x446e7a
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x447528
cmp al, 0x21
je 0x447528
cmp al, 0x3c
je 0x447528
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 0x446eab
add esi, 2
cmp byte [esi], 0x26
jne 0x446eab
or dword [ebp + 0x3c], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x64
jmp 0x446ee1
cmp cl, 0x3c
jne 0x446eb9
mov dword [ebp + 0x3c], 0x3e
jmp 0x446ec5
cmp cl, 0x27
jne 0x446eca
mov dword [ebp + 0x3c], 0x27
mov dword [ebp + 0x50], eax
jmp 0x446ee1
and dword [ebp + 0x3c], 0
cmp cl, 0x2d
je 0x446ed8
cmp cl, 0x2b
jne 0x446ee1
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 0x448feb
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 0x446f32
test edx, edx
jl 0x446f22
test byte [eax + 0x467430], 4
je 0x446f1f
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
jmp 0x446f22
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [ecx + eax], 0x10
jne 0x446f09
mov dword [ebp + 0x4c], edx
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x3c], 0
mov dword [ebp + 0x48], eax
jle 0x446f50
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x3c]
mov dword [ebp + 0x50], esi
jne 0x448ffc
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x448ffc
cmp dword [ebp + 0x7c], 0
jne 0x447528
xor eax, eax
cmp dword [ebp + 0x44], eax
jle 0x446fa8
cmp edx, eax
jle 0x44900e
cmp dword [ebp + 0x44], 0x2d
jne 0x446f87
mov ecx, dword [edi + 0x30]
sub ecx, edx
inc ecx
mov edx, ecx
jmp 0x446f8a
add edx, dword [edi + 0x30]
cmp edx, eax
jle 0x4472d7
cmp edx, dword [edi + 0x34]
jg 0x4472d7
mov eax, edx
sar eax, 8
mov byte [ebx + 5], dl
jmp 0x447525
cmp dword [edi + 0x28], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], eax
jle 0x446fe2
mov esi, ecx
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004517db
add esp, 0xc
test eax, eax
je 0x446fdf
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 0x446fb8
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x447005
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 0x447528
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.00445a68
add esp, 0xc
test eax, eax
jg 0x446ff5
xor ecx, ecx
cmp dword [ebp + 0x3c], ecx
jne 0x4472d7
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0x52
jne 0x447079
xor esi, esi
inc esi
cmp dword [ebp + 0x48], esi
jle 0x447063
movzx eax, byte [esi + edx]
test byte [eax + 0x467430], 4
je 0x4472d7
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x48]
lea ecx, [ecx + eax - 0x30]
jl 0x447041
test ecx, ecx
jne 0x447068
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x64
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x447525
cmp dword [ebp + 0x48], 6
jne 0x4470a3
push 6
push str.DEFINE
push edx
call fcn.004517db
add esp, 0xc
test eax, eax
jne 0x4470a3
mov byte [ebx + 3], 0x65
mov dword [ebp + 0x24], 1
jmp 0x447528
mov eax, dword [ebp + 0x4c]
test eax, eax
jle 0x4470b3
cmp eax, dword [edi + 0x34]
jle 0x446ff5
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x4490e9
cmp eax, 0x2b
je 0x44712c
cmp eax, 0x2d
je 0x44712c
cmp eax, 0x2f
jle 0x447172
cmp eax, 0x39
jle 0x44712c
jmp 0x447172
sub eax, 0x3c
je 0x4473c2
dec eax
je 0x4473b2
dec eax
je 0x4473a6
sub eax, 5
je 0x44733b
sub eax, 0xd
je 0x447301
dec eax
dec eax
je 0x447128
sub eax, 0x2a
jne 0x447172
mov dword [ebp], 1
mov dword [ebp + 0x38], 0x5d
inc esi
mov dword [ebp + 0x50], esi
jmp 0x447528
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x447158
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447285
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3f
jmp 0x449151
cmp ecx, 0x2d
jne 0x447285
inc esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447282
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], esi
lea ecx, [ebp + 0x40]
je 0x447201
cmp dl, 0x3a
je 0x4471fb
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x4471d1
je 0x4471cc
cmp eax, 0x2d
je 0x4471c7
cmp eax, 0x4a
je 0x4471bb
cmp eax, 0x55
je 0x4471b3
cmp eax, 0x58
jne 0x44901c
or dword [ecx], 0x40
jmp 0x4471f1
or dword [ecx], 0x200
jmp 0x4471f1
or dword [ecx], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x4471f1
lea ecx, [ebp + 0x3c]
jmp 0x4471f1
or dword [ecx], 1
jmp 0x4471f1
cmp eax, 0x6d
je 0x4471ee
cmp eax, 0x73
je 0x4471e9
cmp eax, 0x78
jne 0x44901c
or dword [ecx], 8
jmp 0x4471f1
or dword [ecx], 4
jmp 0x4471f1
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x447184
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 0x447273
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x447236
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x44722b
cmp dword [ecx], 6
jne 0x447236
mov dword [edi + 0x40], eax
mov dword [ebp + 0x34], eax
jmp 0x446e13
mov ecx, eax
xor ecx, dword [ebp + 0x34]
test cl, 7
je 0x44724c
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 0x446e13
inc dword [ebp + 0x50]
mov dword [ebp + 0x38], 0x5d
jmp 0x447528
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x467430], 4
mov dword [ebp + 0x4c], edx
je 0x4472b0
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447296
mov dword [ebp + 0x4c], edx
cmp byte [esi], 0x29
jne 0x44902d
cmp ecx, 0x2d
jne 0x4472e5
test edx, edx
je 0x44900e
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
test eax, eax
mov dword [ebp + 0x4c], eax
jg 0x447975
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x449151
cmp ecx, 0x2b
jne 0x447975
test edx, edx
je 0x44900e
add edx, dword [edi + 0x30]
mov dword [ebp + 0x4c], edx
jmp 0x447975
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x447328
cmp dl, 0x3e
je 0x447328
cmp dl, 0x3c
je 0x4473e5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x449151
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
mov dword [ebp + 0x40], eax
pop edx
jmp 0x4478a2
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 0x447357
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447350
cmp byte [esi], 0x29
jne 0x44903b
cmp ecx, 0xff
jg 0x449049
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 0x446e13
mov dword [ebp + 0x38], 0x5c
jmp 0x44711f
mov dword [ebp + 0x38], 0x57
inc esi
mov dword [ebp + 0x50], esi
jmp 0x446e23
mov al, byte [esi + 1]
cmp al, 0x21
je 0x44753e
cmp al, 0x3d
je 0x447530
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x449073
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 0x447419
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x44740c
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x447466
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x3c]
jne 0x449057
cmp dword [edi + 0x28], 0x2710
jge 0x449065
lea edx, [eax + 3]
cmp edx, dword [edi + 0x2c]
jle 0x447508
cmp eax, 0x20
mov dword [edi + 0x2c], edx
jle 0x447508
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x449151
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4474da
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.0044fc45
add esp, 0xc
test eax, eax
jne 0x4474af
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
jne 0x4474aa
test dword [ebp + 0x34], 0x80000
jne 0x4474b1
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x449151
or eax, 0xffffffff
test eax, eax
jl 0x4474c1
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x447473
jmp 0x4474da
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.00452e30
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.0044f8e0
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 0x446e27
mov dword [ebp + 0x38], 0x59
inc esi
inc esi
jmp 0x4473ba
mov dword [ebp + 0x38], 0x5a
jmp 0x447537
test word [ebp + 0x34], 0x1000
je 0x44750f
mov dword [ebp + 0x38], 0x5d
jmp 0x447528
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.00449163
add esp, 0x34
test eax, eax
je 0x449151
mov edx, dword [ebp + 0x38]
cmp edx, 0x5f
jne 0x4475d3
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x4475d3
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 0x4475b1
cmp byte [ebx + 3], 0x65
jne 0x447628
cmp esi, 1
jg 0x449085
push 0x65
pop edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0x29
jne 0x4490a1
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x447641
mov eax, dword [ecx]
mov ecx, dword [ebp - 8]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x449148
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 0x448fc4
cmp esi, 2
jg 0x449093
cmp esi, 1
jne 0x4475d3
or eax, 0xffffffff
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x60], eax
jmp 0x4475d6
cmp edx, 0x65
mov ebx, dword [ebp + 0x10]
je 0x448fc4
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 0x44769f
cmp ecx, 0xfffffffe
jne 0x447682
cmp eax, esi
jl 0x447678
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x5c], 1
jmp 0x44767c
or dword [ebp + 0x28], 0xffffffff
or dword [ebp + 8], 0xffffffff
jmp 0x447691
cmp eax, esi
jl 0x447691
cmp dword [ebp - 0x1c], esi
jge 0x44769a
or eax, dword [ebp + 0x40]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jl 0x448fc4
mov eax, dword [ebp - 0x1c]
jmp 0x4476b3
cmp edx, 0x57
jne 0x448fc4
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x448fc4
mov dword [ebp + 0xc], eax
jmp 0x448fc4
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x1a
jmp 0x447aef
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4476d0
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 0x447aef
sub eax, 0x3f
je 0x448745
sub eax, 0x1c
je 0x447b12
dec eax
je 0x4477dd
dec eax
dec eax
je 0x4477c2
sub eax, 0x1d
je 0x447756
dec eax
jne 0x44775b
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 0x44774e
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x449148
sub eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x44915b
cmp dword [ebp + 0x40], edx
jne 0x447798
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x34], al
je 0x448647
cmp dword [ebp + 0x4c], 0xc0
jl 0x448647
mov ecx, dword [ebp + 0x50]
jmp 0x44778a
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 0x447780
jmp 0x448647
push dword [ebp + 0x68]
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [esi + 1]
call fcn.004459d3
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp dword [eax], 0
jne 0x449151
jmp 0x44874f
test byte [ebp + 0x34], 2
je 0x4477d2
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4477d2
or dword [ebp + 0x28], 0xffffffff
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x19
jmp 0x447aef
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.0044561e
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x449151
test eax, eax
jge 0x447af5
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x447835
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x447829
add eax, 2
cmp byte [eax], 0x45
je 0x446adb
mov dword [ebp + 4], 1
jmp 0x448fc4
cmp ecx, 0x18
je 0x448fc4
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x447852
cmp ecx, 5
jle 0x447852
cmp ecx, 0x16
jge 0x447852
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 0x447a6f
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x447880
cmp dl, 0x27
je 0x447880
cmp dl, 0x7b
jne 0x447a6f
and dword [ebp + 0x40], 0
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x447894
push 0x3e
jmp 0x447335
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 0x4478c4
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x4478b7
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x4478f4
test eax, eax
je 0x4490af
movzx ecx, byte [esi]
cmp ecx, edx
jne 0x449057
cmp eax, 0x20
jg 0x447458
and dword [ebp + 0x4c], 0
jmp 0x44796b
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x44792f
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004517db
add esp, 0xc
test eax, eax
jne 0x447921
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
je 0x44792f
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x447901
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x447942
movzx eax, byte [esi + 1]
mov ah, byte [esi]
mov dword [ebp + 0x4c], eax
jmp 0x44796b
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.00445a68
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x4472d7
cmp dword [ebp + 0x40], 0
je 0x447a7c
mov eax, dword [edi + 0x14]
xor esi, esi
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x3c], eax
jne 0x447a22
cmp dword [ebp + 0x4c], esi
mov byte [ebx], 0
je 0x4479a4
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.00445e28
pop ecx
pop ecx
mov dword [ebp + 0x3c], eax
cmp eax, esi
jne 0x4479f9
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.00445a68
add esp, 0xc
test eax, eax
jl 0x4472d7
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 0x447a1f
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x447a22
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x3c]
call fcn.0044614a
add esp, 0xc
test eax, eax
jne 0x4490bd
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 0x448fc4
or dword [ebp + 0x28], 0xffffffff
jmp 0x448fc4
cmp ecx, 0x1b
jl 0x447abd
push 0xffffffffffffffe5
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x447a86
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 0x447aa6
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x448fc4
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x38], eax
jmp 0x448fc4
cmp ecx, 0x15
je 0x4490cb
cmp ecx, 0xe
je 0x4490cb
cmp ecx, 0xf
je 0x4490cb
cmp ecx, 5
jle 0x447ae7
cmp ecx, 0x16
jge 0x447ae7
mov dword [ebp + 0x48], ebx
jmp 0x447aeb
and dword [ebp + 0x48], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x448fc4
cmp dword [ebp + 0x1c], 0
je 0x448641
cmp eax, 0x7f
jle 0x448641
lea ecx, [ebp - 0x34]
push ecx
push eax
jmp 0x448636
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x447b24
cmp al, 0x2e
je 0x447b24
cmp al, 0x3d
jne 0x447b3b
lea eax, [ebp - 0x2c]
push eax
mov eax, esi
call fcn.0044617c
test eax, eax
pop ecx
jne 0x4490d6
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 0x447b70
inc esi
cmp byte [esi], 0x45
je 0x447b3f
push 3
push 0x467540
push esi
call fcn.004517db
add esp, 0xc
test eax, eax
jne 0x447b84
mov esi, dword [ebp + 0x50]
add esi, 3
jmp 0x447b3f
cmp dword [ebp + 0x18], 0
jne 0x447b84
cmp eax, 0x5e
jne 0x447b84
mov dword [ebp + 0x18], 1
jmp 0x447b3f
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.004512d0
mov dword [ebp + 0x3c], esi
add esp, 0xc
cmp dword [ebp + 0x4c], 0
lea esi, [ebx + 4]
mov dword [ebp - 0x24], esi
je 0x44911c
cmp dword [ebp + 0x1c], 0
je 0x447c1f
cmp dword [ebp + 0x4c], 0x7f
jle 0x447c1f
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
cmp eax, 0xc0
mov dword [ebp + 0x4c], eax
jl 0x447c1f
and eax, 0x3f
movzx eax, byte [eax + 0x467660]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x467644]
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 0x447c1c
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 0x447bfc
add dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x447c2f
mov ecx, esi
mov esi, dword [ebp - 0x24]
sub ecx, esi
add dword [eax], ecx
cmp dword [ebp + 4], 0
je 0x447c58
cmp dword [ebp + 0x4c], 0x5c
jne 0x44824b
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x44824b
and dword [ebp + 4], 0
mov dword [ebp + 0x50], eax
jmp 0x448548
cmp dword [ebp + 0x4c], 0x5b
jne 0x447dbe
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x447c78
cmp al, 0x2e
je 0x447c78
cmp al, 0x3d
jne 0x44824b
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x50]
call fcn.0044617c
test eax, eax
pop ecx
je 0x44824b
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 0x4490f0
add dword [ebp + 0x50], 2
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x5e
jne 0x447cbc
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.004461bc
test eax, eax
pop ecx
pop ecx
jl 0x4490fb
test byte [ebp + 0x34], 1
je 0x447ce2
cmp eax, 2
jg 0x447ce2
xor eax, eax
imul eax, eax, 3
shl eax, 2
mov dword [ebp], eax
mov eax, dword [eax + 0x466a90]
add eax, dword [ebp + 0x40]
push 0x20
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.0044f8e0
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x466a94]
mov ecx, dword [ecx + 0x466a98]
add esp, 0xc
test eax, eax
mov dword [ebp], ecx
jl 0x447d5b
test ecx, ecx
mov edx, dword [ebp + 0x40]
jl 0x447d3f
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 0x447d2a
jmp 0x447d5b
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 0x447d46
mov eax, dword [ebp]
test eax, eax
jge 0x447d64
neg eax
cmp eax, 1
jne 0x447d72
and byte [ebp - 0x93], 0xc3
jmp 0x447d7e
cmp eax, 2
jne 0x447d7e
and byte [ebp - 0x89], 0x7f
xor eax, eax
cmp dword [ebp + 0x2c], eax
je 0x447d9a
mov cl, byte [ebp + eax - 0x94]
not cl
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x447d85
jmp 0x447dab
mov cl, byte [ebp + eax - 0x94]
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x447d9a
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], 0xa
jmp 0x448548
cmp dword [ebp + 0x4c], 0x5c
jne 0x44824b
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.0044561e
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x449151
mov edx, dword [ebp + 0x4c]
neg edx
cmp edx, 5
jne 0x447e04
mov dword [ebp + 0x4c], 8
jmp 0x44824b
cmp edx, 0x15
jne 0x447e15
mov dword [ebp + 0x4c], 0x58
jmp 0x44824b
cmp edx, 0x10
jne 0x447e26
mov dword [ebp + 0x4c], 0x52
jmp 0x44824b
cmp edx, 0x19
jne 0x447e4c
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x447e40
add eax, 2
cmp byte [eax], 0x45
je 0x447c50
mov dword [ebp + 4], 1
jmp 0x448548
cmp edx, 0x18
je 0x448548
cmp dword [ebp + 0x4c], 0
jge 0x44824b
add dword [ebp + 0x38], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x447f7a
mov ecx, edx
sub ecx, 6
je 0x447f52
dec ecx
je 0x447f33
dec ecx
je 0x447f04
dec ecx
je 0x447ede
dec ecx
je 0x447eb3
dec ecx
jne 0x447fb3
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 0x447e95
jmp 0x448548
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 0x447ebe
jmp 0x448548
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 0x447ee9
and byte [ebp - 0x53], 0xf7
jmp 0x448548
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 0x447f16
or byte [ebp - 0x53], 8
jmp 0x448548
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 0x447f37
jmp 0x448548
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 0x447f5d
jmp 0x448548
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x448548
cmp eax, 0xfffffffa
je 0x448548
cmp eax, 0xfffffff5
je 0x448548
cmp eax, 0xfffffff6
je 0x448548
cmp eax, 0xfffffff7
je 0x448548
cmp eax, 0xfffffff8
je 0x448548
cmp edx, 0x12
jne 0x448054
or byte [ebp - 0x53], 2
or byte [ebp - 0x50], 1
or byte [ebp - 0x40], 1
cmp dword [ebp + 0x1c], 0
je 0x448548
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0044edc6
add esi, eax
push esi
push 0x200a
call fcn.0044edc6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0044edc6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0044edc6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0044edc6
add esp, 0x38
add esi, eax
jmp 0x448548
cmp edx, 0x11
jne 0x448175
xor ecx, ecx
mov eax, ecx
dec eax
mov edx, 0xff
je 0x44807a
sub eax, 3
je 0x448073
sub eax, 0x10
jne 0x44807f
mov edx, 0xfe
jmp 0x44807f
mov edx, 0xfd
or byte [ebp + ecx - 0x54], dl
inc ecx
cmp ecx, 0x20
jl 0x44805f
cmp dword [ebp + 0x1c], 0
je 0x448548
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
add esi, eax
push esi
push 0x167f
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0044edc6
add esi, eax
push esi
push 0x180d
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0044edc6
add esi, eax
push esi
push 0x1fff
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0044edc6
add esi, eax
push esi
push 0x202e
call fcn.0044edc6
add esi, eax
add esp, 0x40
mov byte [esi], 2
inc esi
push esi
push 0x2030
call fcn.0044edc6
add esi, eax
push esi
push 0x205e
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0044edc6
add esi, eax
push esi
push 0x2fff
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0044edc6
add esi, eax
push esi
push bind
call fcn.0044edc6
add esp, 0x30
jmp 0x44804d
cmp edx, 0x14
jne 0x4481b7
or byte [ebp - 0x53], 0x3c
or byte [ebp - 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x448548
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
add esi, eax
push esi
push 0x2029
call fcn.0044edc6
add esp, 0x10
jmp 0x44804d
cmp edx, 0x13
jne 0x448234
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x4481d2
sub edx, 0xf
jne 0x4481d7
add ecx, 0xffffffe0
jmp 0x4481d7
mov ecx, 0xc3
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4481be
cmp dword [ebp + 0x1c], 0
je 0x448548
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
add esi, eax
push esi
push 0x2027
call fcn.0044edc6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0044edc6
add esi, eax
push esi
push bind
call fcn.0044edc6
add esp, 0x20
jmp 0x44804d
test byte [ebp + 0x34], 0x40
jne 0x449106
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 0x448261
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x448267
and dword [ebp + 4], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x448250
cmp dword [ebp + 0x4c], 0xd
mov dword [ebp], eax
je 0x448276
cmp dword [ebp + 0x4c], 0xa
jne 0x44827a
or dword [edi + 0x44], 0x20
cmp dword [ebp + 4], 0
jne 0x4484c3
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x4484c3
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4482d9
cmp byte [eax + 1], 0x45
jne 0x4482cb
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x44829e
jmp 0x4482cb
cmp byte [eax + 1], 0x51
jne 0x4482d9
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4482d2
cmp byte [eax + 1], 0x45
jne 0x4482d2
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4482b0
jmp 0x4482d9
mov dword [ebp + 4], 1
mov al, byte [eax]
test al, al
je 0x4484bd
cmp dword [ebp + 4], 0
jne 0x4482f1
cmp al, 0x5d
je 0x4484bd
cmp dword [ebp + 0x1c], 0
je 0x448359
movzx edx, al
cmp edx, 0xc0
mov dword [ebp + 0x44], edx
jl 0x44835f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x467660]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x467644]
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 0x448354
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 0x448334
add dword [ebp + 0x50], eax
jmp 0x44835f
movzx eax, al
mov dword [ebp + 0x44], eax
cmp dword [ebp + 4], 0
jne 0x4483c4
cmp dword [ebp + 0x44], 0x5c
jne 0x4483c4
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.0044561e
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x449151
mov eax, dword [ebp + 0x44]
test eax, eax
jge 0x4483c4
cmp eax, 0xfffffffb
jne 0x4483a6
mov dword [ebp + 0x44], 8
jmp 0x4483c4
cmp eax, 0xffffffeb
jne 0x4483b4
mov dword [ebp + 0x44], 0x58
jmp 0x4483c4
cmp eax, 0xfffffff0
jne 0x4484bd
mov dword [ebp + 0x44], 0x52
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp + 0x4c]
jl 0x449111
je 0x4484c3
cmp eax, 0xd
je 0x4483e0
cmp eax, 0xa
jne 0x4483e4
or dword [edi + 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x448439
cmp eax, 0xff
jg 0x4483fc
test byte [ebp + 0x34], 1
je 0x448439
cmp eax, 0x7f
jle 0x448439
mov byte [esi], 2
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
add esi, eax
push esi
push dword [ebp + 0x44]
call fcn.0044edc6
add esp, 0x10
add esi, eax
test byte [ebp + 0x34], 1
je 0x448548
push 0x7f
pop eax
cmp dword [ebp + 0x4c], eax
jg 0x448548
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 0x448548
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x4c], eax
jg 0x448548
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 0x4484ad
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 0x44846a
jmp 0x448548
mov eax, dword [ebp]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x4484f9
cmp dword [ebp + 0x4c], 0xff
jg 0x4484de
test byte [ebp + 0x34], 1
je 0x4484f9
cmp dword [ebp + 0x4c], 0x7f
jle 0x4484f9
mov byte [esi], 1
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.0044edc6
pop ecx
pop ecx
jmp 0x44804d
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 0x44853f
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 0x44911c
cmp eax, 0x5d
jne 0x447bb2
cmp dword [ebp + 4], 0
jne 0x447bb2
xor ecx, ecx
cmp dword [ebp + 0x38], 1
jne 0x448590
cmp dword [ebp + 0x3c], ecx
jne 0x448590
cmp dword [ebp + 0x1c], ecx
je 0x4485fe
cmp dword [ebp + 0x18], ecx
je 0x4485fe
mov eax, dword [ebp + 8]
cmp eax, 0x80
jl 0x448601
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x44859a
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 0x4486ff
cmp dword [ebp + 0x24], ecx
jne 0x4486ff
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 0x4486e4
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.00452e30
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0044f8e0
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x4486e6
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], edx
je 0x448625
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x448616
or dword [ebp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x28]
mov byte [ebx], 0x1d
mov dword [ebp + 8], ecx
inc ebx
jmp 0x447aed
cmp dword [ebp + 0x1c], ecx
je 0x448641
cmp eax, 0x7f
jle 0x448641
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.0044edc6
pop ecx
mov esi, eax
pop ecx
jmp 0x448647
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 0x448668
mov cl, byte [ebp + eax - 0x34]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x44865c
cmp byte [ebp - 0x34], 0xd
je 0x448674
cmp byte [ebp - 0x34], 0xa
jne 0x448678
or dword [edi + 0x44], 0x20
mov eax, dword [ebp + 0x28]
cmp eax, 0xfffffffe
jne 0x4486bd
or dword [ebp + 8], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x44869e
cmp dword [ebp - 0x20], 0
je 0x44869e
or dword [ebp + 0xc], 0xffffffff
jmp 0x447a66
movzx eax, byte [ebp - 0x34]
or eax, dword [ebp - 0x20]
cmp esi, 1
mov dword [ebp + 0x28], eax
je 0x448fc4
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
jmp 0x4476b3
cmp esi, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4486d5
cmp dword [ebp - 0x20], 0
jne 0x448fc4
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
or eax, dword [ebp - 0x20]
jmp 0x4476b3
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 0x448fc4
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 0x44872e
cmp dword [ebp + 0x7c], ecx
jne 0x44873d
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 0x448721
jmp 0x44873d
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0044f8e0
add esp, 0xc
add ebx, 0x20
jmp 0x448fc4
mov dword [ebp + 0x30], 1
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x449127
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x44876d
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 0x4487a4
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x50], ecx
jmp 0x4487b3
cmp al, 0x3f
jne 0x4487b0
mov eax, dword [ebp - 0x6c]
mov dword [ebp + 0x50], ecx
jmp 0x4487b3
mov eax, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1b
mov dword [ebp + 0x44], eax
je 0x448c68
cmp cl, 0x1c
je 0x448c68
cmp cl, 0x1d
jne 0x448808
cmp dword [ebp + 0x3c], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x40], 0xd
mov dword [ebp + 0x4c], eax
jne 0x448ccd
cmp dword [ebp + 0x30], 0
jge 0x448ccd
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 0x448cb3
cmp cl, 0x16
jae 0x448845
cmp dword [ebp + 0x3c], 0
movzx eax, cl
mov dword [ebp + 0x40], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x448ccd
cmp dword [ebp + 0x30], 0
jge 0x448ccd
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 0x448cb3
cmp cl, 0x4d
je 0x448bee
cmp cl, 0x4e
je 0x448bee
cmp cl, 0x4f
je 0x448bee
cmp cl, 0x50
je 0x448bee
cmp cl, 0x5d
je 0x448881
cmp cl, 0x5e
je 0x448881
cmp cl, 0x5c
je 0x448881
cmp cl, 0x5f
jne 0x449132
and dword [ebp], 0
and dword [ebp + 0x18], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5f
mov dword [ebp + 0x38], eax
jne 0x44889f
cmp byte [edx + 3], 0x65
je 0x44913d
cmp dword [ebp + 0x30], 0xffffffff
jne 0x4488bd
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x4488a7
mov ecx, ebx
sub ecx, eax
mov dword [ebp], ecx
cmp dword [ebp + 0x14], 0
jne 0x448960
cmp dword [ebp + 0x30], 0
je 0x448bf4
cmp dword [ebp + 0x30], 1
push dword [ebp - 0xc]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x448910
push 1
push dword [ebp + 0x48]
call fcn.00446206
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x38]
lea esi, [eax + 1]
push eax
push esi
call fcn.00452e30
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 0x44894f
push 4
push dword [ebp + 0x48]
call fcn.00446206
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.00452e30
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 0x448a31
cmp dword [ebp + 0x14], 1
jle 0x448a24
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4489b1
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 [0x467538]
fnstsw ax
test ah, 0x41
je 0x449148
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x2c]
jl 0x449148
mov edx, dword [ebp + 0x2c]
add edx, eax
mov dword [ecx], edx
jmp 0x448a24
cmp dword [ebp - 0x5c], 0
je 0x4489c3
cmp dword [ebp + 0xc], 0
jge 0x4489c3
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0x14], 1
jle 0x448a24
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.0044f8e0
add esp, 0xc
jmp 0x448a0e
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 0x4489ea
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x2c]
mov dword [ebp - 0xc], esi
jne 0x4489d3
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
test ecx, ecx
jle 0x448a33
sub ecx, dword [ebp + 0x14]
mov dword [ebp + 0x30], ecx
test ecx, ecx
jl 0x448b8b
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x448a86
test ecx, ecx
jle 0x448a86
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 [0x467538]
fnstsw ax
test ah, 0x41
je 0x449148
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x449148
add ecx, eax
mov dword [edx], ecx
jmp 0x448b43
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x24], eax
jl 0x448b43
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 0x448ace
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.0044f8e0
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, esi
jae 0x448b31
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 0x448b00
mov esi, dword [ebp + 0x2c]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x24]
mov dword [ebp - 0xc], esi
jns 0x448a9c
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x448eab
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 0x448b50
jmp 0x448ea8
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 0x448ea8
cmp byte [edi], 0x5c
je 0x448ea8
mov dword [ebp + 0x40], edi
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x40]
call fcn.00445f5d
add esp, 0xc
test eax, eax
jne 0x448be6
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 0x448bb9
jmp 0x448ea8
add byte [edi], 3
jmp 0x448ea8
cmp dword [ebp + 0x30], 0
jne 0x448bfb
mov ebx, edx
jmp 0x448fb7
mov ecx, dword [ebp + 0x30]
cmp ecx, 1
je 0x448c07
or dword [edi + 0x44], 1
cmp dword [ebp + 0x14], 0
jne 0x448c19
cmp ecx, 0xffffffff
jne 0x448c2b
add al, 0x45
jmp 0x448ea5
cmp dword [ebp + 0x14], 1
jne 0x448c37
cmp ecx, 0xffffffff
jne 0x448c37
add al, 0x47
jmp 0x448ea5
cmp ecx, 1
jne 0x448c37
add al, 0x49
jmp 0x448ea5
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 0x448c57
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 0x448ea8
cmp dword [ebp + 0x1c], 0
je 0x448c76
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x448ce5
cmp dword [ebp + 0x14], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x448c8e
mov edi, dword [edi + 0x48]
or edi, eax
or edi, dword [ebp - 0x20]
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0x3c], 0
jne 0x448ccd
cmp dword [ebp + 0x30], 0
jge 0x448ccd
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.004462cc
add esp, 0x18
test eax, eax
je 0x448ccd
and dword [ebp + 0x44], 0
mov dword [ebp + 0x3c], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xf
je 0x448d0b
cmp al, 0xe
je 0x448d0b
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x24], 0xffffffff
jmp 0x448d19
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x448ce4
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x68]
push eax
call fcn.0044f8e0
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x448c8e
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 0x448fb7
mov edx, dword [ebp + 0x30]
cmp edx, 1
je 0x448d36
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 0x448d6b
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x448e07
cmp edx, 1
je 0x448e63
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x448e74
cmp dword [ebp + 0x14], 1
jne 0x448daa
cmp edx, 0xffffffff
jne 0x448d80
mov ebx, dword [ebp + 0x48]
add al, 0x20
jmp 0x448e65
cmp edx, 1
mov ebx, esi
je 0x448fb7
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 0x448e79
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 0x448e0b
cmp dword [ebp + 0x1c], 0
je 0x448df1
cmp dword [ebp + 0x4c], 0x80
jl 0x448df1
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8e0
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x448e07
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x24]
inc ebx
test ecx, ecx
jl 0x448e07
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1e
jmp 0x448e65
mov ecx, dword [ebp + 0x14]
cmp dword [ebp + 0x30], ecx
je 0x448e7b
cmp dword [ebp + 0x1c], 0
je 0x448e3d
cmp dword [ebp + 0x4c], 0x80
jl 0x448e3d
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8e0
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x448e43
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x24], 0
mov ecx, dword [ebp + 0x30]
jl 0x448e58
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 0x448e6a
add al, 0x22
mov byte [ebx], al
inc ebx
jmp 0x448e7b
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 0x448ea2
cmp dword [ebp + 0x4c], 0x80
jl 0x448ea2
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8e0
add esp, 0xc
add ebx, esi
jmp 0x448ea8
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x3c], 0
je 0x448fb7
mov cl, byte [esi]
cmp cl, 0x26
je 0x448ec6
cmp cl, 0x40
je 0x448ecb
cmp cl, 0x33
jne 0x448eee
cmp cl, 0x40
jne 0x448edb
mov al, byte [esi + 3]
cmp al, 0xf
je 0x448ed6
cmp al, 0xe
jne 0x448edb
push 2
pop eax
jmp 0x448edd
xor eax, eax
movzx ecx, cl
movzx ecx, byte [ecx + 0x4675a0]
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 0x448fb7
movzx eax, byte [esi]
cmp eax, 0x2f
jg 0x448f4d
je 0x448f48
sub eax, 0x1e
je 0x448f43
push 2
pop ecx
sub eax, ecx
je 0x448f3e
sub eax, ecx
je 0x448f39
sub eax, ecx
je 0x448f34
sub eax, 7
je 0x448f2c
sub eax, ecx
jne 0x448f63
mov byte [esi], 0x35
jmp 0x448fb7
mov byte [esi], 0x34
jmp 0x448fb7
mov byte [esi], 0x2a
jmp 0x448fb7
mov byte [esi], 0x29
jmp 0x448fb7
mov byte [esi], 0x28
jmp 0x448fb7
mov byte [esi], 0x27
jmp 0x448fb7
mov byte [esi], 0x36
jmp 0x448fb7
sub eax, 0x31
je 0x448fb4
sub eax, 7
je 0x448faf
dec eax
dec eax
je 0x448faa
dec eax
dec eax
je 0x448fa5
dec eax
dec eax
je 0x448fa0
push dword [ebp + 0x2c]
push esi
add esi, 3
push esi
call fcn.00452e30
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 0x448fb7
mov byte [esi], 0x44
jmp 0x448fb7
mov byte [esi], 0x43
jmp 0x448fb7
mov byte [esi], 0x42
jmp 0x448fb7
mov byte [esi], 0x41
jmp 0x448fb7
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 0x446a2e
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x449151
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x449151
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x449151
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x449151
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3e
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x449151
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 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x449151
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x449151
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