Function at 0x44cae7
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
shr eax, 0xb
and eax, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
shr eax, 9
and eax, 1
mov dword [ebp - 0xb4], eax
xor eax, 1
mov dword [ebp - 0xb8], eax
mov eax, 0xfffffffe
push ebx
mov ebx, dword [ecx]
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], eax
movsx eax, byte [ebp - 0x2c]
push esi
mov esi, dword [ebp + 0x24]
push edi
mov edi, dword [ecx]
xor ecx, ecx
and eax, 1
shl eax, 8
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x68], eax
mov dword [ebp - 4], edi
movzx eax, byte [edi]
mov dword [ebp - 8], eax
cmp dword [ebp + 0x28], edx
je 0x44cc0e
mov ecx, dword [esi + 0x10]
add ecx, 0xf9c
cmp ebx, ecx
ja 0x44f8e2
mov ecx, dword [ebp - 0x74]
cmp ebx, ecx
jae 0x44cba1
mov ebx, ecx
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov edx, ebx
sub edx, ecx
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x44f8f9
sub eax, dword [ebp - 0x74]
mov edx, dword [ebp + 0x28]
add eax, ebx
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
cmp eax, edx
je 0x44cc00
cmp eax, dword [ebp - 0xa4]
jbe 0x44cc06
mov edi, dword [ebp - 0xa4]
mov ecx, ebx
sub ecx, eax
push ecx
push eax
push edi
call fcn.00416790
mov ecx, dword [ebp - 0x5c]
mov edx, edi
sub edx, dword [ebp - 0x10]
add esp, 0xc
add ebx, edx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 4]
xor edx, edx
mov dword [ebp - 0x74], ebx
jmp 0x44cc1f
mov ebx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x74], ebx
jmp 0x44cc1f
mov eax, dword [esi + 0x10]
add eax, 0xf9c
cmp dword [esi + 0x24], eax
ja 0x44f910
cmp dword [ebp - 0x54], edx
je 0x44cd73
cmp dword [ebp - 8], edx
je 0x44cd73
cmp dword [ebp - 8], 0x5c
jne 0x44cc4c
cmp byte [edi + 1], 0x45
jne 0x44cc4c
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x54], edx
inc edi
xor edx, edx
jmp 0x44cb75
cmp ecx, edx
je 0x44cc7c
cmp dword [ebp + 0x28], edx
jne 0x44cc79
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
sub eax, dword [esi + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov edi, dword [ebp - 4]
xor edx, edx
mov dword [ebp - 0x5c], edx
test dword [ebp - 0x2c], 0x4000
mov edx, dword [ebp - 8]
je case.0x44cebd.1
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
mov eax, edi
mov ecx, eax
sub ecx, dword [esi + 0x18]
mov dword [ebp - 0x5c], ebx
sar ecx, 8
mov byte [ebx + 2], cl
sub al, byte [esi + 0x18]
mov word [ebx + 4], 0
mov byte [ebx + 3], al
mov edi, dword [ebp - 4]
add ebx, 6
cmp dword [ebp - 0x24], 0
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0xac], dl
je 0x44ccf5
cmp edx, 0xc0
jl 0x44ccf5
mov dl, byte [edi + 1]
inc edi
and dl, 0xc0
cmp dl, 0x80
jne 0x44ccf5
mov dword [ebp - 4], edi
mov al, byte [edi]
mov dl, byte [edi + 1]
inc edi
mov byte [ebp + ecx - 0xac], al
and dl, 0xc0
inc ecx
cmp dl, 0x80
je 0x44ccd9
mov dword [ebp - 0xc], ecx
movsx eax, byte [ebp - 0x2c]
and eax, 1
or al, 0x1c
mov dword [ebp - 0x10], ebx
mov byte [ebx], al
inc ebx
test ecx, ecx
jle 0x44cd20
mov edi, dword [ebp - 0xc]
push edi
lea eax, [ebp - 0xac]
push eax
push ebx
call fcn.00411000
add esp, 0xc
add ebx, edi
mov ecx, edi
mov dl, byte [ebp - 0xac]
cmp dl, 0xd
je 0x44cd30
cmp dl, 0xa
jne 0x44cd34
or dword [esi + 0x48], 0x20
mov eax, dword [ebp - 0x38]
cmp eax, 0xfffffffe
jne 0x44f8b3
mov edi, dword [ebp - 0x44]
or eax, 0xffffffff
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x60], edi
cmp ecx, 1
je 0x44f88d
cmp dword [ebp - 0x68], 0
je 0x44f88d
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], eax
xor edx, edx
jmp 0x44cb75
mov edx, dword [ebp - 8]
cmp edx, 0x2a
je 0x44cec4
cmp edx, 0x2b
je 0x44cec4
cmp edx, 0x3f
je 0x44cec4
cmp edx, 0x7b
jne 0x44cdad
lea edx, [edi + 1]
push edx
call fcn.0042fe05
mov edx, dword [ebp - 8]
add esp, 4
test eax, eax
jne 0x44cec4
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x14], eax
cmp ecx, eax
je 0x44cdfe
mov eax, dword [ebp - 0xb0]
mov edx, eax
dec eax
mov dword [ebp - 0xb0], eax
test edx, edx
jg 0x44cdfb
cmp dword [ebp + 0x28], 0
jne 0x44cdf4
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
sub eax, dword [esi + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov edi, dword [ebp - 4]
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
and eax, 8
mov dword [ebp - 0x28], eax
je 0x44ce75
mov eax, dword [esi + 0xc]
test byte [edx + eax], 1
jne 0x44f8d7
cmp edx, 0x23
jne 0x44ce75
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
test al, al
je 0x44ce6b
mov edi, edi
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x44ced0
mov eax, dword [esi + 0x1c]
cmp edi, eax
jae 0x44cef6
mov edx, dword [ebp - 0x24]
push edx
lea edx, [esi + 0x5c]
push edx
push eax
push ecx
push edi
call fcn.0042efe8
add esp, 0x14
test eax, eax
je 0x44cef6
mov eax, dword [esi + 0x5c]
lea edi, [edi + eax - 1]
mov dword [ebp - 4], edi
cmp byte [edi], 0
jne 0x44f8d7
mov dword [ebp - 8], 0
mov edx, dword [ebp - 8]
test dword [ebp - 0x2c], 0x4000
je 0x44cead
cmp dword [ebp - 0x14], 0
jne 0x44cead
mov byte [ebx], 0x53
mov byte [ebx + 1], 0xff
mov eax, edi
mov ecx, eax
sub ecx, dword [esi + 0x18]
mov dword [ebp - 0x5c], ebx
sar ecx, 8
mov byte [ebx + 2], cl
sub al, byte [esi + 0x18]
mov word [ebx + 4], 0
mov byte [ebx + 3], al
mov edi, dword [ebp - 4]
add ebx, 6
cmp edx, 0x7c
ja case.0x44cebd.1
movzx eax, byte [edx + 0x44fd4b]
jmp dword [eax*4 + 0x44fd17]
mov dword [ebp - 0x14], 1
jmp 0x44cdfe
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x1c]
sub edx, ecx
cmp edi, edx
ja 0x44cef6
cmp al, byte [esi + 0x60]
jne 0x44cef6
cmp ecx, 1
je 0x44ce58
mov al, byte [edi + 1]
cmp al, byte [esi + 0x61]
je 0x44ce58
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 4], edi
je 0x44cf18
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x44cf18
inc edi
mov dword [ebp - 4], edi
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
je 0x44cf0a
mov al, byte [edi]
test al, al
jne 0x44ce27
jmp 0x44ce6b
test byte [ebp - 0x2c], 2
je 0x44cf3a
cmp dword [ebp - 0x38], 0xfffffffe
jne 0x44cf3a
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x5c]
mov byte [ebx], 0x1a
mov edi, dword [ebp - 4]
inc ebx
inc edi
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov ecx, dword [ebp - 0x5c]
mov byte [ebx], 0x1b
mov edi, dword [ebp - 4]
inc ebx
inc edi
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov eax, dword [ebp - 0x38]
cmp eax, 0xfffffffe
jne 0x44cf7a
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
movsx eax, byte [ebp - 0x2c]
and eax, 4
or eax, 0x30
shr eax, 2
mov byte [ebx], al
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x5c]
inc ebx
inc edi
xor edx, edx
jmp 0x44cb75
test dword [esi + 0x44], 0x2000000
je case.0x44cebd.1
mov ecx, dword [ebp + 0x14]
mov dword [ecx], pe_nt_image_headers32
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 1]
mov dword [ebp - 0x10], ebx
cmp al, 0x3a
je 0x44cfda
cmp al, 0x2e
je 0x44cfda
cmp al, 0x3d
jne 0x44cff2
lea edx, [ebp - 0x98]
push edx
push edi
call fcn.0042f2d5
add esp, 8
test eax, eax
jne 0x44f979
xor eax, eax
mov dword [ebp - 0x48], eax
inc edi
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
mov dword [ebp - 8], ecx
cmp ecx, 0x5c
jne 0x44d02b
inc edi
cmp byte [edi], 0x45
je 0x44cff7
push 3
push 0x48bcf8
push edi
call fcn.00416af1
add esp, 0xc
test eax, eax
jne 0x44d073
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x48]
add edi, 3
jmp 0x44cff7
test eax, eax
jne 0x44d039
cmp ecx, 0x5e
jne 0x44d039
lea eax, [ecx - 0x5d]
jmp 0x44cff4
cmp ecx, 0x5d
jne 0x44d073
test dword [esi + 0x44], 0x2000000
je 0x44d073
neg eax
sbb eax, eax
and eax, 0xffffff9a
add eax, 0x73
mov byte [ebx], al
mov eax, dword [ebp - 0x38]
inc ebx
cmp eax, 0xfffffffe
jne 0x44d062
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x48], eax
xor edx, edx
jmp 0x44cb75
xor edi, edi
push 0x20
lea eax, [ebp - 0x94]
push edi
push eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], 0xffffffff
call fcn.004130e0
add esp, 0xc
cmp dword [ebp - 8], edi
lea esi, [ebx + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0x50], esi
je 0x44f9fb
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 8]
je 0x44d1a8
cmp eax, 0x7f
jle 0x44d1a8
movzx eax, byte [edi]
mov dword [ebp - 8], eax
cmp eax, 0xc0
jl 0x44d1a8
test al, 0x20
jne 0x44d0e9
movzx ecx, byte [edi + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
inc edi
jmp 0x44d1a2
test al, 0x10
jne 0x44d110
movzx edx, byte [edi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
add edi, 2
jmp 0x44d1a2
movzx ecx, byte [edi + 1]
movzx edx, byte [edi + 2]
and ecx, 0x3f
and edx, 0x3f
test al, 8
jne 0x44d140
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 6
or ecx, edx
shl ecx, 6
and eax, 0x3f
or eax, ecx
add edi, 3
jmp 0x44d1a2
test al, 4
jne 0x44d16e
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 6
or ecx, edx
movzx edx, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add edi, 4
jmp 0x44d1a2
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 6
or ecx, edx
movzx edx, byte [edi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edi + 5]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or eax, ecx
add edi, 5
mov dword [ebp - 8], eax
mov dword [ebp - 4], edi
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x44d1b8
mov edx, esi
mov esi, dword [ebp - 0x50]
sub edx, esi
add dword [ecx], edx
cmp dword [ebp - 0x54], 0
je 0x44d1de
cmp eax, 0x5c
jne 0x44d393
cmp byte [edi + 1], 0x45
jne 0x44d393
mov dword [ebp - 0x54], 0
inc edi
jmp 0x44d5f2
cmp eax, 0x5b
jne 0x44d34e
mov al, byte [edi + 1]
cmp al, 0x3a
je 0x44d1fa
cmp al, 0x2e
je 0x44d1fa
cmp al, 0x3d
jne 0x44d393
lea eax, [ebp - 0x98]
push eax
push edi
call fcn.0042f2d5
add esp, 8
test eax, eax
je 0x44d393
cmp byte [edi + 1], 0x3a
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x28], edx
jne 0x44f99c
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi], 0x5e
jne 0x44d247
mov eax, 1
add edi, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x98]
sub eax, edi
push eax
push edi
call fcn.0042f284
add esp, 8
test eax, eax
js 0x44f9b3
test byte [ebp - 0x2c], 1
je 0x44d26e
cmp eax, 2
jg 0x44d26e
xor eax, eax
lea edi, [eax + eax*2]
mov ecx, dword [edi*4 + 0x486070]
add ecx, dword [ebp - 0x28]
push 0x20
push ecx
lea edx, [ebp - 0xe0]
push edx
call fcn.00411000
mov ecx, dword [edi*4 + 0x486074]
mov edi, dword [edi*4 + 0x486078]
add esp, 0xc
test ecx, ecx
js 0x44d2cc
add ecx, dword [ebp - 0x28]
xor eax, eax
test edi, edi
js 0x44d2ba
mov dl, byte [ecx + eax]
or byte [ebp + eax - 0xe0], dl
inc eax
cmp eax, 0x20
jl 0x44d2a8
jmp 0x44d2cc
mov dl, byte [ecx + eax]
not dl
and byte [ebp + eax - 0xe0], dl
inc eax
cmp eax, 0x20
jl 0x44d2ba
test edi, edi
jns 0x44d2d2
neg edi
cmp edi, 1
jne 0x44d2e0
and byte [ebp - 0xdf], 0xc3
jmp 0x44d2ec
cmp edi, 2
jne 0x44d2ec
and byte [ebp - 0xd5], 0x7f
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x44d327
lea esp, [esp]
mov cl, byte [ebp + eax - 0xe0]
not cl
or byte [ebp + eax - 0x94], cl
inc eax
cmp eax, 0x20
jl 0x44d2f7
mov edi, dword [ebp - 0x98]
inc edi
mov dword [ebp - 0xc], 0xa
jmp 0x44d5f2
mov dl, byte [ebp + eax - 0xe0]
or byte [ebp + eax - 0x94], dl
inc eax
cmp eax, 0x20
jl 0x44d327
mov edi, dword [ebp - 0x98]
inc edi
mov dword [ebp - 0xc], 0xa
jmp 0x44d5f2
cmp eax, 0x5c
jne 0x44d393
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x34]
mov edi, dword [ebp + 0x14]
push 1
push eax
push edx
lea eax, [ebp - 4]
push edi
push eax
call fcn.0042fe8e
add esp, 0x14
cmp dword [edi], 0
mov dword [ebp - 8], eax
jne 0x44e8fa
mov ecx, eax
neg eax
cmp eax, 5
jne 0x44d403
mov dword [ebp - 8], 8
mov edi, dword [ebp - 4]
xor ecx, ecx
cmp byte [edi + 1], 0x5c
jne 0x44d3b0
cmp byte [edi + 2], 0x45
jne 0x44d3b0
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi + 1], 0x5c
mov dword [ebp - 0x54], ecx
je 0x44d39b
mov eax, dword [ebp - 8]
mov dword [ebp - 0x34], edi
cmp eax, 0xd
je 0x44d3c0
cmp eax, 0xa
jne 0x44d3c7
mov eax, dword [ebp + 0x24]
or dword [eax + 0x48], 0x20
cmp dword [ebp - 0x54], ecx
jne 0x44db7a
cmp byte [edi + 1], 0x2d
jne 0x44db7a
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi], 0x5c
jne 0x44d8f2
cmp byte [edi + 1], 0x45
jne 0x44d8bd
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi], 0x5c
je 0x44d3e9
jmp 0x44d8f2
cmp eax, 0x1a
jne 0x44d42b
mov edi, dword [ebp - 4]
cmp byte [edi + 1], 0x5c
jne 0x44d41f
cmp byte [edi + 2], 0x45
jne 0x44d41f
add edi, 2
jmp 0x44d5f2
mov dword [ebp - 0x54], 1
jmp 0x44d5f2
cmp eax, 0x19
je 0x44d5ef
test ecx, ecx
jns 0x44d390
mov ecx, dword [ebp + 0x24]
mov edi, dword [ecx + 8]
mov ecx, 2
add dword [ebp - 0xc], ecx
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x44d456.12
jmp dword [eax*4 + 0x44fdcb]
xor eax, eax
jmp 0x44d467
mov dl, byte [edi + eax + 0x40]
or byte [ebp + eax - 0x94], dl
inc eax
cmp eax, 0x20
jl 0x44d467
jmp 0x44d5ef
mov dword [ebp - 0x20], 1
xor eax, eax
nop
mov cl, byte [edi + eax + 0x40]
not cl
or byte [ebp + eax - 0x94], cl
inc eax
cmp eax, 0x20
jl 0x44d487
jmp 0x44d5ef
xor eax, eax
lea ebx, [ebx]
mov dl, byte [edi + eax + 0xa0]
or byte [ebp + eax - 0x94], dl
inc eax
cmp eax, 0x20
jl 0x44d4a7
jmp 0x44d5ef
mov dword [ebp - 0x20], 1
xor eax, eax
jmp 0x44d4d7
mov cl, byte [edi + eax + 0xa0]
not cl
or byte [ebp + eax - 0x94], cl
inc eax
cmp eax, 0x20
jl 0x44d4d7
jmp 0x44d5ef
mov dl, byte [edi]
or byte [ebp - 0x94], dl
mov al, byte [edi + 1]
and al, 0xf7
or byte [ebp - 0x93], al
mov eax, ecx
mov cl, byte [edi + eax]
or byte [ebp + eax - 0x94], cl
inc eax
cmp eax, 0x20
jl 0x44d507
jmp 0x44d5ef
mov ecx, edi
lea edx, [ebp - 0x94]
xor eax, eax
mov dword [ebp - 0x20], 1
sub ecx, edx
jmp 0x44d537
lea edi, [ebp + eax - 0x94]
mov dl, byte [edi + ecx]
not dl
or byte [edi], dl
inc eax
cmp eax, 0x20
jl 0x44d537
or byte [ebp - 0x93], 8
jmp 0x44d5ef
or byte [ebp - 0x93], cl
or byte [ebp - 0x90], 1
or byte [ebp - 0x80], 1
cmp dword [ebp - 0x24], 0
je 0x44d5ef
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0042edc9
add esi, eax
push esi
push 0x200a
call fcn.0042edc9
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0042edc9
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0042edc9
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0042edc9
add esp, 0x38
add esi, eax
mov edi, dword [ebp - 4]
inc edi
mov dword [ebp - 4], edi
movzx eax, byte [edi]
mov dword [ebp - 8], eax
test eax, eax
je 0x44f9fb
cmp eax, 0x5d
jne 0x44d0a9
cmp dword [ebp - 0x54], 0
jne 0x44d0a9
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x48]
cmp edi, 1
jne 0x44d64a
cmp dword [ebp - 0x1c], 0
jne 0x44d64a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x44dc0f
test ecx, ecx
je 0x44dc0f
mov edx, dword [ebp - 0x14]
cmp edx, 0x80
jl 0x44dc12
mov eax, dword [ebp - 0x38]
cmp eax, 0xfffffffe
jne 0x44d658
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x60], eax
je 0x44dcb0
cmp dword [ebp - 0x20], 0
je 0x44d67e
test dword [ebp - 0x2c], 0x20000000
je 0x44dcb0
xor eax, eax
test ecx, ecx
mov byte [esi], 0
setne al
mov byte [ebx], 0x50
mov byte [ebx + 3], al
test edi, edi
jle 0x44dc88
or al, 2
mov byte [ebx + 3], al
add ebx, 4
lea ecx, [esi + 1]
sub ecx, ebx
push ecx
lea edx, [ebx + 0x20]
push ebx
push edx
call fcn.00416790
push 0x20
lea eax, [ebp - 0x94]
push eax
push ebx
call fcn.00411000
add esp, 0x18
lea ebx, [esi + 0x21]
jmp 0x44dc8b
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x44d6e5
sub ecx, 3
je 0x44d6de
sub ecx, 0x10
jne 0x44d6ea
mov edx, 0xfe
jmp 0x44d6ea
mov edx, 0xfd
or byte [ebp + eax - 0x94], dl
inc eax
cmp eax, 0x20
jl 0x44d6ca
cmp dword [ebp - 0x24], 0
je 0x44d5ef
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
add esi, eax
push esi
push 0x167f
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0042edc9
add esi, eax
push esi
push 0x180d
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0042edc9
add esi, eax
push esi
push 0x1fff
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0042edc9
add esi, eax
push esi
push 0x202e
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
add esp, 0x40
inc esi
push esi
push 0x2030
call fcn.0042edc9
add esi, eax
push esi
push 0x205e
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0042edc9
add esi, eax
push esi
push 0x2fff
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0042edc9
add esi, eax
push esi
push SysReAllocString
call fcn.0042edc9
add esp, 0x30
jmp 0x44d5ed
or byte [ebp - 0x93], 0x3c
or byte [ebp - 0x84], 0x20
cmp dword [ebp - 0x24], 0
je 0x44d5ef
mov byte [esi], cl
inc esi
push esi
push 0x2028
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
add esi, eax
push esi
push 0x2029
call fcn.0042edc9
add esp, 0x10
jmp 0x44d5ed
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x44d83d
sub ecx, 0xf
jne 0x44d842
mov edx, 0xdf
jmp 0x44d842
mov edx, 0xc3
or byte [ebp + eax - 0x94], dl
inc eax
cmp eax, 0x20
jl 0x44d827
cmp dword [ebp - 0x24], 0
je 0x44d5ef
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
add esi, eax
push esi
push 0x2027
call fcn.0042edc9
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0042edc9
add esi, eax
push esi
push SysReAllocString
call fcn.0042edc9
add esp, 0x20
jmp 0x44d5ed
test byte [ebp - 0x2c], 0x40
mov edi, dword [ebp - 4]
jne 0x44f9cd
movzx eax, byte [edi]
sub dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
jmp 0x44d393
cmp byte [edi], 0x5c
jne 0x44d8f2
jmp 0x44d8c7
cmp byte [edi + 1], 0x51
jne 0x44d8f2
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi], 0x5c
jne 0x44d8eb
cmp byte [edi + 1], 0x45
jne 0x44d8eb
add edi, 2
mov dword [ebp - 4], edi
cmp byte [edi], 0x5c
je 0x44d8c7
jmp 0x44d8f2
mov dword [ebp - 0x54], 1
mov al, byte [edi]
test al, al
je 0x44db74
mov ecx, dword [ebp - 0x54]
test ecx, ecx
jne 0x44d90b
cmp al, 0x5d
je 0x44db74
cmp dword [ebp - 0x24], 0
je 0x44da0c
movzx eax, al
mov dword [ebp - 0x18], eax
cmp eax, 0xc0
jl 0x44da12
movzx edx, byte [edi + 1]
and edx, 0x3f
test al, 0x20
jne 0x44d942
and eax, 0x1f
shl eax, 6
or edx, eax
inc edi
mov dword [ebp - 4], edi
jmp 0x44da0f
test al, 0x10
jne 0x44d965
and eax, 0xf
shl eax, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 2
mov dword [ebp - 4], edi
jmp 0x44da0f
test al, 8
jne 0x44d994
and eax, 7
shl eax, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 3
mov dword [ebp - 4], edi
jmp 0x44da0f
test al, 4
jne 0x44d9cc
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 4
mov dword [ebp - 4], edi
jmp 0x44da0f
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 5
mov dword [ebp - 4], edi
jmp 0x44da0f
movzx edx, al
mov dword [ebp - 0x18], edx
test ecx, ecx
jne 0x44da5c
cmp dword [ebp - 0x18], 0x5c
jne 0x44da5c
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x34]
mov edi, dword [ebp + 0x14]
push 1
push eax
push edx
lea eax, [ebp - 4]
push edi
push eax
call fcn.0042fe8e
add esp, 0x14
cmp dword [edi], 0
mov dword [ebp - 0x18], eax
jne 0x44e8fa
test eax, eax
jns 0x44da59
cmp eax, 0xfffffffb
jne 0x44db74
mov dword [ebp - 0x18], 8
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
cmp eax, ecx
jl 0x44f9e4
je 0x44db7a
cmp eax, 0xd
je 0x44da7a
cmp eax, 0xa
jne 0x44da81
mov edx, dword [ebp + 0x24]
or dword [edx + 0x48], 0x20
cmp dword [ebp - 0x24], 0
je 0x44dae3
cmp eax, 0xff
jg 0x44da99
test byte [ebp - 0x2c], 1
je 0x44dae3
cmp eax, 0x7f
jle 0x44dae3
mov ecx, dword [ebp - 8]
mov byte [esi], 2
inc esi
push esi
push ecx
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
mov edx, dword [ebp - 0x18]
add esi, eax
push esi
push edx
call fcn.0042edc9
add esp, 0x10
add esi, eax
test byte [ebp - 0x2c], 1
je 0x44d5ef
cmp dword [ebp - 8], 0x7f
jg 0x44d5ef
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], 0x7f
mov eax, dword [ebp - 0x18]
mov edx, eax
sub edx, ecx
cmp dword [ebp + 0x28], 0
mov ecx, dword [ebp - 0xc]
lea edx, [ecx + edx + 1]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], eax
jne 0x44d5f2
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 8], eax
jg 0x44d5f2
mov eax, dword [ebp - 0x2c]
and eax, 1
mov dword [ebp - 0x34], eax
lea esp, [esp]
mov ecx, dword [ebp - 8]
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 - 0x94]
or byte [eax], dl
cmp dword [ebp - 0x34], 0
je 0x44db63
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 8]
movzx ecx, byte [ecx + edx]
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 - 0x94]
or byte [eax], dl
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jle 0x44db17
jmp 0x44d5f2
mov edi, dword [ebp - 0x34]
mov dword [ebp - 4], edi
cmp dword [ebp - 0x24], 0
je 0x44dbb2
mov eax, dword [ebp - 8]
cmp eax, 0xff
jg 0x44db95
test byte [ebp - 0x2c], 1
je 0x44dbb2
cmp eax, 0x7f
jle 0x44dbb2
mov eax, dword [ebp - 8]
mov byte [esi], 1
inc esi
push esi
push eax
mov dword [ebp - 0x1c], 1
call fcn.0042edc9
add esp, 8
jmp 0x44d5ed
mov ecx, dword [ebp - 8]
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 - 0x94]
or byte [eax], dl
test byte [ebp - 0x2c], 1
je 0x44dc01
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 8]
movzx ecx, byte [ecx + edx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov dword [ebp - 8], ecx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x94]
or byte [eax], dl
mov eax, dword [ebp - 8]
inc dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
jmp 0x44d5f2
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x60], esi
test ecx, ecx
je 0x44dc47
mov eax, dword [ebp - 0x38]
cmp eax, 0xfffffffe
jne 0x44dc2a
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov esi, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x5c]
mov byte [ebx], 0x1e
mov byte [ebx + 1], dl
mov edi, dword [ebp - 4]
add ebx, 2
inc edi
mov dword [ebp - 0x48], eax
xor edx, edx
jmp 0x44cb75
test eax, eax
je 0x44dc70
cmp edx, 0x7f
jle 0x44dc70
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0xac]
push ecx
push edx
call fcn.0042edc9
mov esi, dword [ebp + 0x24]
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, eax
jmp 0x44ccf5
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0xac], dl
jmp 0x44ccf5
lea ebx, [esi + 1]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp + 0x24]
mov ecx, ebx
sub ecx, eax
mov dl, bl
sar ecx, 8
sub dl, al
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x5c]
mov byte [eax + 2], dl
mov edi, dword [ebp - 4]
inc edi
xor edx, edx
jmp 0x44cb75
xor eax, eax
cmp ecx, dword [ebp - 0x20]
setne al
inc ebx
add eax, 0x4e
mov byte [ebx - 1], al
test ecx, ecx
je 0x44dcf7
cmp dword [ebp + 0x28], 0
jne 0x44dd09
lea esi, [ebp - 0x94]
mov eax, ebx
sub esi, ebx
mov edi, 0x20
mov cl, byte [esi + eax]
not cl
mov byte [eax], cl
inc eax
dec edi
jne 0x44dcd8
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x5c]
add ebx, 0x20
inc edi
xor edx, edx
jmp 0x44cb75
push 0x20
lea edx, [ebp - 0x94]
push edx
push ebx
call fcn.00411000
add esp, 0xc
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x5c]
add ebx, 0x20
inc edi
xor edx, edx
jmp 0x44cb75
cmp dword [ebp - 0x14], 0
je case.0x44cebd.1
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0x40]
push edx
inc edi
push edi
call fcn.0042fd6c
mov edi, eax
mov eax, dword [ebp + 0x14]
add esp, 0x10
cmp dword [eax], 0
mov dword [ebp - 4], edi
jne 0x44e8fd
jmp 0x44dd77
mov dword [ebp - 0x30], 0xffffffff
jmp 0x44dd70
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x30], 0xffffffff
jmp 0x44dd77
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x40], 0
mov edx, dword [ebp - 0x10]
xor ecx, ecx
cmp edx, ecx
je 0x44fa12
cmp dword [ebp - 0x40], ecx
jne 0x44dd95
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], ecx
neg eax
sbb eax, eax
and eax, 0x200
mov dword [ebp - 0x20], ecx
mov ecx, edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x3c], ecx
mov al, byte [edi + 1]
cmp al, 0x2b
jne 0x44ddcb
mov edx, dword [ebp - 0x10]
xor eax, eax
inc edi
mov dword [ebp - 0x20], 1
mov dword [ebp - 4], edi
jmp 0x44dde1
cmp al, 0x3f
jne 0x44dddb
mov eax, dword [ebp - 0xb8]
inc edi
mov dword [ebp - 4], edi
jmp 0x44dde1
mov eax, dword [ebp - 0xb4]
mov dl, byte [edx]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x49], dl
cmp dl, 0x1c
je 0x44e36a
cmp dl, 0x1d
je 0x44e36a
cmp dl, 0x1e
jne 0x44de49
cmp dword [ebp - 0x20], 0
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0x28], 0xd
mov dword [ebp - 8], edx
jne 0x44e405
cmp dword [ebp - 0x30], 0
jge 0x44e405
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x10]
push esi
push eax
inc edi
push edi
push ecx
push edx
call fcn.0043efe4
add esp, 0x14
test eax, eax
je 0x44e402
jmp 0x44e3f4
cmp dl, 0x17
jae 0x44de80
cmp dword [ebp - 0x20], 0
movzx eax, dl
mov dword [ebp - 0x28], 0x1a
mov dword [ebp - 8], eax
jne 0x44e405
cmp dword [ebp - 0x30], 0
jge 0x44e405
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
push esi
push ecx
inc edi
push edi
push edx
push eax
jmp 0x44de34
cmp dl, 0x4e
je 0x44e2e7
cmp dl, 0x4f
je 0x44e2e7
cmp dl, 0x50
je 0x44e2e7
cmp dl, 0x51
je 0x44e2e7
cmp dl, 0x5e
je 0x44ded8
cmp dl, 0x5f
je 0x44ded8
cmp dl, 0x5d
je 0x44ded8
cmp dl, 0x60
je 0x44ded8
cmp dl, 0x73
je 0x44e717
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0xb
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x10]
mov eax, ebx
sub eax, edx
cmp byte [ebp - 0x49], 0x60
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], 0
jne 0x44df00
cmp byte [edx + 3], 0x68
je 0x44fa29
cmp dword [ebp - 0x30], 0xffffffff
jne 0x44df2c
mov eax, edx
mov dword [ebp - 0x34], edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x34]
add eax, edx
cmp byte [eax], 0x55
mov dword [ebp - 0x34], eax
jne 0x44df0b
mov edx, ebx
sub edx, eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x44dff3
cmp dword [ebp - 0x30], 1
mov byte [ebx], al
jg 0x44df97
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
push ecx
push esi
push edx
push 1
push eax
call fcn.0043fbac
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push ecx
lea edi, [eax + 1]
push eax
push edi
call fcn.00416790
add esp, 0x20
inc ebx
cmp dword [ebp - 0x30], 0
jne 0x44df79
mov edx, dword [ebp - 0x10]
mov byte [edx], 0x76
jmp 0x44e714
mov al, byte [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add al, 0x69
dec dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
mov byte [ecx], al
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 4]
jmp 0x44e0e9
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
push edx
push esi
push eax
push 4
push ecx
call fcn.0043fbac
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push edx
push eax
add eax, 4
push eax
call fcn.00416790
mov cl, byte [ebp - 0x18]
mov eax, dword [ebp - 0x10]
add cl, 0x69
mov byte [eax], cl
mov byte [eax + 1], 0x5e
add eax, 2
mov word [eax], 0
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
add eax, 2
add esp, 0x20
add ebx, 4
dec dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
jmp 0x44e0e9
cmp eax, 1
jle 0x44e0dc
cmp dword [ebp + 0x28], 0
je 0x44e058
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x50], eax
imul eax, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x50]
imul edx
test edx, edx
jg 0x44fa40
jl 0x44e02c
cmp eax, 0x7fffffff
ja 0x44fa40
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov edx, 0x7fffffeb
sub edx, eax
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x50], edx
jl 0x44fa40
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
add eax, edx
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
jmp 0x44e0dc
cmp dword [ebp - 0x9c], 0
je 0x44e06d
cmp dword [ebp - 0x44], 0
jge 0x44e06d
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x40], 1
jle 0x44e0dc
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x58]
dec ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, dword [esi + 0x24]
push eax
push ecx
push ebx
mov dword [ebp - 0x28], edx
call fcn.00411000
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp edi, dword [ebp - 0x28]
jae 0x44e0c9
movzx edx, byte [edi]
movzx ecx, byte [edi + 1]
shl edx, 8
or edx, ecx
mov ecx, dword [esi + 0x24]
add edx, eax
sar edx, 8
mov byte [ecx], dl
mov dl, byte [edi + 1]
mov ecx, dword [esi + 0x24]
add dl, al
mov byte [ecx + 1], dl
add dword [esi + 0x24], 2
add edi, 2
cmp edi, dword [ebp - 0x28]
jb 0x44e09c
mov edi, dword [ebp - 0x28]
add ebx, eax
dec dword [ebp - 0x34]
mov dword [ebp - 0x58], edi
jne 0x44e07d
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
test edx, edx
jle 0x44e0eb
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0x30], edx
test edx, edx
js 0x44e26d
cmp dword [ebp + 0x28], 0
je 0x44e153
test edx, edx
jle 0x44e153
mov eax, dword [ebp - 0x64]
add eax, 7
mov dword [ebp - 0x50], eax
imul eax, edx
sub eax, 6
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x50]
imul edx
test edx, edx
jg 0x44f962
jl 0x44e127
cmp eax, 0x7fffffff
ja 0x44f962
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov edx, 0x7fffffeb
sub edx, eax
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x50], edx
jl 0x44f962
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
add eax, edx
mov edx, dword [ebp + 0x28]
mov dword [edx], eax
jmp 0x44e218
dec edx
mov dword [ebp - 0x14], edx
js 0x44e218
mov al, byte [ebp - 0x18]
add al, 0x69
mov byte [ebp - 0x49], al
mov edi, edi
mov edi, dword [esi + 0x24]
mov al, byte [ebp - 0x49]
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x34], edi
je 0x44e19c
mov ecx, dword [ebp - 0x1c]
mov byte [ebx], 0x5e
inc ebx
test ecx, ecx
jne 0x44e188
xor eax, eax
jmp 0x44e18c
mov eax, ebx
sub eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [ebp - 0x1c], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push edx
push eax
push ebx
call fcn.00411000
mov ecx, dword [ebp - 0x58]
add esp, 0xc
cmp ecx, edi
jae 0x44e203
lea ecx, [ecx]
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
mov edi, dword [ebp - 0x14]
neg edi
sbb edi, edi
shl edx, 8
or edx, eax
add edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x24]
and edi, 3
inc edi
add edx, edi
sar edx, 8
mov byte [eax], dl
mov eax, dword [ebp - 0x14]
mov dl, byte [ecx + 1]
neg eax
sbb eax, eax
and eax, 3
inc eax
add dl, al
add dl, byte [ebp - 0xc]
mov eax, dword [esi + 0x24]
mov byte [eax + 1], dl
add dword [esi + 0x24], 2
add ecx, 2
cmp ecx, dword [ebp - 0x34]
jb 0x44e1b7
mov edi, dword [ebp - 0x34]
add ebx, dword [ebp - 0xc]
dec dword [ebp - 0x14]
mov dword [ebp - 0x58], edi
jns 0x44e167
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x1c], 0
je 0x44e5e8
jmp 0x44e227
mov eax, ebx
sub eax, dword [ebp - 0x1c]
mov edi, ebx
inc eax
sub edi, eax
movzx ecx, byte [edi + 1]
movzx edx, byte [edi + 2]
shl ecx, 8
or ecx, edx
jne 0x44e247
xor edx, edx
mov dword [ebp - 0x1c], edx
jmp 0x44e24c
sub dword [ebp - 0x1c], ecx
xor edx, edx
mov byte [ebx], 0x55
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
add ebx, 3
mov byte [edi + 1], cl
mov byte [edi + 2], al
cmp dword [ebp - 0x1c], edx
jne 0x44e227
jmp 0x44e5e2
mov edi, ebx
sub edi, dword [ebp - 0x14]
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 2]
shl eax, 8
or eax, ecx
mov ecx, edi
sub ecx, eax
mov al, byte [ebp - 0x18]
add al, 0x56
cmp dword [ebp + 0x28], 0
mov dword [ebp - 0x50], ecx
mov byte [edi], al
jne 0x44e5e2
cmp byte [ecx], 0x5d
je 0x44e5e2
mov dword [ebp - 0x28], ecx
lea esp, [esp]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
push esi
push edx
push edi
push eax
call fcn.0043fc4f
add esp, 0x10
test eax, eax
jne 0x44e2dc
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
mov dword [ebp - 0x28], eax
je 0x44e2a7
jmp 0x44e5e2
mov eax, dword [ebp - 0x50]
add byte [eax], 3
jmp 0x44e5e2
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x44e305
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x70]
or dword [esi + 0x4c], ecx
mov ecx, dword [ebp - 0x5c]
inc edi
xor edx, edx
jmp 0x44cb75
cmp dword [ebp - 0x40], 0
jne 0x44e319
cmp ecx, 0xffffffff
jne 0x44e32d
add al, 0x46
mov byte [ebx], al
jmp 0x44e5e1
cmp dword [ebp - 0x40], 1
jne 0x44e33b
cmp ecx, 0xffffffff
jne 0x44e33b
add al, 0x48
mov byte [ebx], al
jmp 0x44e5e1
cmp ecx, 1
jne 0x44e33b
add al, 0x4a
mov byte [ebx], al
jmp 0x44e5e1
add al, 0x4c
mov byte [ebx], al
mov eax, dword [ebp - 0x40]
mov edx, eax
sar edx, 8
mov byte [ebx + 1], dl
mov byte [ebx + 2], al
cmp ecx, 0xffffffff
jne 0x44e357
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov eax, ecx
sar eax, 8
mov byte [ebx + 3], al
mov byte [ebx + 4], cl
add ebx, 5
jmp 0x44e5e2
cmp dword [ebp - 0x24], 0
je 0x44e3b5
test byte [ebx - 1], 0x80
lea ecx, [ebx - 1]
je 0x44e3b5
mov dl, byte [ecx]
and dl, 0xc0
cmp dl, 0x80
jne 0x44e391
lea esp, [esp]
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x44e387
mov eax, ebx
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0xc0]
push ecx
mov dword [ebp - 8], eax
call fcn.00411000
mov edi, dword [ebp - 4]
add esp, 0xc
or dword [ebp - 8], 0x80
jmp 0x44e3cd
cmp dword [ebp - 0x40], 1
movzx ecx, byte [ebx - 1]
mov dword [ebp - 8], ecx
jle 0x44e3cd
mov eax, dword [esi + 0x4c]
or eax, ecx
or eax, dword [ebp - 0x68]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x20], 0
jne 0x44e405
cmp dword [ebp - 0x30], 0
jge 0x44e405
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
push esi
push edx
inc edi
push edi
push eax
push ecx
call fcn.0043efe4
add esp, 0x14
test eax, eax
je 0x44e402
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], 0
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx]
cmp al, 0x10
je 0x44e41a
cmp al, 0xf
je 0x44e41a
or eax, 0xffffffff
mov dword [ebp - 0x14], eax
jmp 0x44e425
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x30], 0
mov edx, ebx
mov dword [ebp - 0xc], eax
mov ebx, ecx
je 0x44e717
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
add eax, ecx
cmp dword [ebp - 0x40], 0
mov dword [ebp - 0x18], eax
jne 0x44e47c
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x10]
cmp ecx, 0xffffffff
jne 0x44e45c
add al, 0x1f
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
cmp ecx, 1
jne 0x44e46b
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
add al, 0x25
mov edx, ecx
sar edx, 8
mov byte [ebx], al
mov byte [ebx + 1], dl
jmp 0x44e5ac
cmp dword [ebp - 0x40], 1
jne 0x44e4c4
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xffffffff
jne 0x44e497
mov ebx, dword [ebp - 0x10]
add al, 0x21
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
mov ebx, edx
cmp ecx, 1
je 0x44e717
mov al, byte [ebp - 0x18]
add al, 0x25
mov byte [edx], al
mov eax, dword [ebp - 0x30]
lea ecx, [eax - 1]
lea ebx, [edx + 1]
sar ecx, 8
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
jmp 0x44e5b2
mov ebx, dword [ebp - 0x10]
add cl, 0x27
mov byte [ebx], cl
mov ecx, dword [ebp - 0x40]
mov edx, ecx
sar edx, 8
mov byte [ebx + 1], dl
mov byte [ebx + 2], cl
add ebx, 3
cmp dword [ebp - 0x30], 0
jge 0x44e53a
cmp dword [ebp - 0x24], 0
je 0x44e518
cmp dword [ebp - 8], 0x80
jl 0x44e518
mov edi, dword [ebp - 8]
and edi, 7
push edi
lea eax, [ebp - 0xc0]
push eax
push ebx
call fcn.00411000
mov eax, dword [ebp - 0x18]
add ebx, edi
add al, 0x1f
add esp, 0xc
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
mov cl, byte [ebp - 8]
mov byte [ebx], cl
mov ecx, dword [ebp - 0x14]
inc ebx
test ecx, ecx
js 0x44e530
mov dl, byte [ebp - 0xc]
mov byte [ebx], cl
mov byte [ebx + 1], dl
add ebx, 2
add al, 0x1f
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
mov ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x30], ecx
je 0x44e5b2
cmp dword [ebp - 0x24], 0
je 0x44e56f
cmp dword [ebp - 8], 0x80
jl 0x44e56f
mov edi, dword [ebp - 8]
and edi, 7
push edi
lea edx, [ebp - 0xc0]
push edx
push ebx
call fcn.00411000
mov eax, dword [ebp - 0x18]
add esp, 0xc
add ebx, edi
jmp 0x44e575
mov cl, byte [ebp - 8]
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x30]
jl 0x44e58e
movzx edx, byte [ebp - 0x14]
mov byte [ebx], dl
movzx edx, byte [ebp - 0xc]
mov byte [ebx + 1], dl
add ebx, 2
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
cmp ecx, 1
jne 0x44e5a0
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x44e5b2
add al, 0x25
mov byte [ebx], al
mov eax, ecx
sar eax, 8
mov byte [ebx + 1], al
mov byte [ebx + 2], cl
add ebx, 3
cmp dword [ebp - 0x24], 0
je 0x44e5dc
cmp dword [ebp - 8], 0x80
jl 0x44e5dc
mov edi, dword [ebp - 8]
and edi, 7
push edi
lea ecx, [ebp - 0xc0]
push ecx
push ebx
call fcn.00411000
add esp, 0xc
add ebx, edi
jmp 0x44e5e2
mov dl, byte [ebp - 8]
mov byte [ebx], dl
inc ebx
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x20], 0
je 0x44e717
mov al, byte [ecx]
cmp al, 0x41
jne 0x44e616
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x44e60b
cmp al, 0xf
je 0x44e60b
xor eax, eax
lea ecx, [ecx + eax + 4]
jmp 0x44e649
mov eax, 2
lea ecx, [ecx + eax + 4]
jmp 0x44e649
cmp al, 0x27
je 0x44e61e
cmp al, 0x34
jne 0x44e64c
movzx eax, al
movzx edx, byte [eax + 0x485228]
add ecx, edx
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x3c], ecx
je 0x44e64c
mov al, byte [ecx - 1]
cmp al, 0xc0
jb 0x44e64c
movzx eax, al
and eax, 0x3f
movzx edx, byte [eax + 0x485318]
add ecx, edx
mov dword [ebp - 0x3c], ecx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x34], eax
test eax, eax
jle 0x44e717
movzx eax, byte [ecx]
add eax, 0xffffffe1
cmp eax, 0x20
ja case.0x44e66d.32
movzx eax, byte [eax + 0x44fe3f]
jmp dword [eax*4 + 0x44fe0b]
mov byte [ecx], 0x28
jmp 0x44e714
mov byte [ecx], 0x29
jmp 0x44e714
mov byte [ecx], 0x2a
jmp 0x44e714
mov byte [ecx], 0x2b
jmp 0x44e714
mov byte [ecx], 0x42
jmp 0x44e714
mov byte [ecx], 0x43
jmp 0x44e714
mov byte [ecx], 0x44
jmp 0x44e714
mov byte [ecx], 0x45
jmp 0x44e714
mov byte [ecx], 0x35
jmp 0x44e714
mov byte [ecx], 0x36
jmp 0x44e714
mov byte [ecx], 0x37
jmp 0x44e714
mov byte [ecx], 0x38
jmp 0x44e714
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
push ecx
push esi
push edx
mov byte [ebx], 0
mov eax, dword [ebp - 0x3c]
push 3
push eax
call fcn.0043fbac
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
push ecx
push eax
add eax, 3
push eax
call fcn.00416790
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
add ecx, 3
mov byte [edx], 0x5d
mov byte [ebx + 3], 0x55
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
mov edx, dword [ebp - 0x3c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x3c]
add esp, 0x20
add ebx, 6
mov byte [eax + 2], cl
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x70]
or dword [esi + 0x4c], ecx
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov edx, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x24]
xor eax, eax
inc edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], edi
mov al, byte [edi]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0xc], 0x5f
mov dword [ebp - 0x58], ecx
cmp al, 0x2a
jne 0x44e90b
mov dl, byte [edi + 1]
lea ecx, [edi + 1]
movzx edx, dl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0xc]
test byte [edx + ecx], 2
jne 0x44e779
mov edx, dword [ebp - 0x1c]
cmp byte [edx], 0x3a
jne 0x44e90b
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], 0x4852ec
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
inc edi
mov dword [ebp - 4], edi
movzx eax, byte [edi]
test byte [eax + ecx], 2
jne 0x44e78b
mov eax, edi
sub eax, dword [ebp - 0x1c]
cmp byte [edi], 0x3a
mov dword [ebp - 0x20], eax
jne 0x44e7c9
inc edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], edi
mov al, byte [edi]
movzx edx, al
test byte [edx + ecx], 6
jne 0x44e7bb
cmp al, 0x5f
jne 0x44e7be
inc edi
jmp 0x44e7a9
mov eax, edi
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
cmp byte [edi], 0x29
jne 0x44fa57
mov dword [ebp - 0xc], 0
mov edi, 0x485f98
cmp eax, dword [edi]
jne 0x44e7fa
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
push eax
push ecx
push edx
call fcn.00416af1
add esp, 0xc
test eax, eax
je 0x44e81d
mov eax, dword [edi]
mov ecx, dword [ebp - 0x28]
inc dword [ebp - 0xc]
add edi, 0xc
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x28], edx
cmp edi, 0x486004
jge 0x44e8f1
mov eax, dword [ebp - 0x20]
jmp 0x44e7de
mov edi, dword [ebp - 0xc]
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
cmp dword [edi + 0x485f9c], 0x74
jne 0x44e856
mov eax, dword [esi + 0x20]
mov dword [esi + 0x50], 1
test eax, eax
je 0x44e856
mov byte [ebx], 0x75
mov cl, byte [eax + 5]
mov byte [ebx + 1], cl
mov dl, byte [eax + 4]
mov byte [ebx + 2], dl
mov eax, dword [eax]
add ebx, 3
test eax, eax
jne 0x44e83e
cmp dword [ebp - 0x14], 0
jne 0x44e897
cmp dword [edi + 0x485f9c], 0
jl 0x44fa6e
mov al, byte [edi + 0x485f9c]
mov byte [ebx], al
inc ebx
cmp al, 0x70
jne 0x44e8e7
mov eax, dword [ebp + 0x20]
mov ecx, ebx
sub ecx, dword [eax + 4]
mov dl, bl
dec ecx
sar ecx, 8
mov byte [ebx], cl
sub dl, byte [eax + 4]
dec dl
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x44e8e7
cmp dword [edi + 0x485fa0], 0
jl 0x44fa88
mov al, byte [edi + 0x485fa0]
mov byte [ebx], al
inc ebx
cmp al, 0x71
jne 0x44e8cc
mov eax, dword [ebp + 0x20]
mov ecx, ebx
sub ecx, dword [eax + 4]
mov dl, bl
dec ecx
sar ecx, 8
mov byte [ebx], cl
sub dl, byte [eax + 4]
dec dl
mov byte [ebx + 1], dl
add ebx, 2
mov eax, dword [ebp - 0x14]
push eax
mov byte [ebx], al
mov eax, dword [ebp - 0x18]
push eax
inc ebx
push ebx
call fcn.00411000
add ebx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebx], 0
inc ebx
cmp dword [ebp - 0xc], 9
jl 0x44f8d4
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x3f
jne 0x44efe5
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x44e92f.34
movzx ecx, byte [ecx + 0x44fe9f]
jmp dword [ecx*4 + 0x44fe63]
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
test al, al
je 0x44e955
lea esp, [esp]
cmp al, 0x29
je 0x44e96c
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
test al, al
jne 0x44e947
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x12
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi], 0
je 0x44e955
mov ecx, dword [ebp - 0x5c]
inc edi
xor edx, edx
jmp 0x44cb75
mov dword [ebp - 0x34], 1
inc edi
mov dword [ebp - 0xc], 0x5e
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
cmp byte [edi + 1], 0x3f
mov dword [ebp - 0xc], 0x60
jne 0x44e9b5
mov al, byte [edi + 2]
cmp al, 0x3d
je 0x44e98e
cmp al, 0x21
je 0x44e98e
cmp al, 0x3c
je 0x44e98e
mov byte [ebx + 3], 0x64
mov edi, dword [ebp - 4]
mov al, byte [edi + 1]
or edx, 0xffffffff
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x10], edx
cmp al, 0x52
jne 0x44e9e8
cmp byte [edi + 2], 0x26
lea ecx, [edi + 2]
jne 0x44e9e8
mov dword [ebp - 4], ecx
mov byte [ebx + 3], 0x66
mov edi, dword [ebp - 4]
mov dword [ebp - 0x18], edx
jmp 0x44ea23
cmp al, 0x3c
jne 0x44e9f9
inc edi
mov dword [ebp - 0x18], 0x3e
mov dword [ebp - 4], edi
jmp 0x44ea23
cmp al, 0x27
jne 0x44ea0a
inc edi
mov dword [ebp - 0x18], 0x27
mov dword [ebp - 4], edi
jmp 0x44ea23
mov dword [ebp - 0x18], 0
cmp al, 0x2d
je 0x44ea19
cmp al, 0x2b
jne 0x44ea23
inc edi
mov dword [ebp - 4], edi
movzx edx, byte [edi]
mov dword [ebp - 0x10], edx
movzx eax, byte [edi + 1]
mov edx, dword [esi + 0xc]
inc edi
test byte [eax + edx], 0x10
je 0x44faa2
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
xor eax, eax
test byte [edx + ecx], 0x10
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], edi
je 0x44ea72
test eax, eax
js 0x44ea62
test byte [ecx + 0x486b28], 4
je 0x44ea5f
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
jmp 0x44ea62
or eax, 0xffffffff
inc edi
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
test byte [ecx + edx], 0x10
jne 0x44ea49
mov dword [ebp - 8], eax
mov ecx, edi
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x44ea90
movzx edx, byte [edi]
inc edi
mov dword [ebp - 4], edi
cmp edx, ecx
jne 0x44fab9
mov cl, byte [edi]
inc edi
mov dword [ebp - 4], edi
cmp cl, 0x29
jne 0x44fab9
cmp dword [ebp + 0x28], 0
jne 0x44e98e
mov ecx, dword [ebp - 0x10]
test ecx, ecx
jle 0x44eaf1
test eax, eax
jle 0x44fad1
cmp ecx, 0x2d
jne 0x44eac7
mov edx, dword [esi + 0x34]
sub edx, eax
lea eax, [edx + 1]
jmp 0x44eaca
add eax, dword [esi + 0x34]
test eax, eax
jle 0x44fae8
cmp eax, dword [esi + 0x38]
jg 0x44fae8
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov ecx, dword [ebp - 0xc]
mov byte [ebx + 5], al
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
cmp dword [esi + 0x2c], 0
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x10], 0
jle 0x44eb2e
lea ebx, [ebx]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
push edx
lea eax, [edi + 2]
push eax
push ecx
call fcn.00416af1
add esp, 0xc
test eax, eax
je 0x44eb2e
mov eax, dword [ebp - 0x10]
add edi, dword [esi + 0x30]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x2c]
jl 0x44eb07
mov edx, dword [ebp - 0x10]
cmp edx, dword [esi + 0x2c]
jge 0x44eb5b
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or eax, ecx
mov ecx, dword [ebp - 0xc]
mov edx, eax
sar edx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x28], eax
push ecx
setne al
push eax
push edi
push edx
push esi
call fcn.0043ff8f
add esp, 0x14
test eax, eax
jle 0x44eb96
mov ecx, eax
sar ecx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], cl
mov ecx, dword [ebp - 0xc]
mov byte [ebx + 5], al
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
cmp dword [ebp - 0x18], 0
jne 0x44faff
mov edx, dword [ebp - 0x20]
cmp byte [edx], 0x52
jne 0x44ebfa
xor eax, eax
lea ecx, [eax + 1]
cmp edi, ecx
jle 0x44ebdb
jmp 0x44ebba
mov edx, dword [ebp - 0x20]
movzx edx, byte [ecx + edx]
test byte [edx + 0x486b28], 4
je 0x44fb19
inc ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
cmp ecx, edi
jl 0x44ebb7
test eax, eax
jne 0x44ebe0
mov eax, 0xffff
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov ecx, dword [ebp - 0xc]
mov byte [ebx + 3], 0x66
mov byte [ebx + 5], al
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
cmp edi, 6
jne 0x44ec28
push edi
push str.DEFINE
push edx
call fcn.00416af1
add esp, 0xc
test eax, eax
jne 0x44ec28
mov ecx, dword [ebp - 0xc]
mov byte [ebx + 3], 0x68
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov eax, dword [ebp - 8]
test eax, eax
jle 0x44fb33
cmp eax, dword [esi + 0x38]
jg 0x44fb33
mov ecx, dword [ebp - 0xc]
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov ecx, 0x58
inc edi
jmp 0x44ecc3
inc edi
mov dword [ebp - 4], edi
cmp byte [edi], 0x29
jne 0x44ec7c
mov ecx, dword [ebp - 0x5c]
mov byte [ebx], 0x73
mov edi, dword [ebp - 4]
inc ebx
inc edi
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov ecx, 0x59
jmp 0x44ecc6
mov cl, byte [edi + 1]
cmp cl, 0x21
je 0x44ecbb
cmp cl, 0x3d
je 0x44ecb4
mov edx, dword [esi + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
je 0x44fb53
cmp al, 0x3c
jne 0x44edf2
mov dword [ebp - 0x18], 0x3e
jmp 0x44edf9
mov ecx, 0x5a
jmp 0x44ecc0
mov ecx, 0x5b
add edi, 2
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 0
mov byte [ebx], cl
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x28]
neg eax
sbb eax, eax
lea edx, [ebp - 0x64]
and eax, edx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x64], 0
cmp ecx, 0x5a
je 0x44f2ec
cmp ecx, 0x5b
je 0x44f2ec
xor ecx, ecx
jmp 0x44f2f1
inc edi
mov dword [ebp - 0xc], 0x5d
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov byte [ebx], 0x53
mov edi, dword [ebp - 4]
inc edi
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
xor eax, eax
test byte [ecx + 0x486b28], 4
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0xb0], 1
je 0x44ed56
inc edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
test byte [ecx + 0x486b28], 4
jne 0x44ed3f
cmp byte [edi], 0x29
jne 0x44fb6b
cmp eax, 0xff
jg 0x44fb82
mov byte [ebx + 1], al
mov ecx, dword [ebp - 4]
sub ecx, dword [esi + 0x18]
add ebx, 6
inc ecx
sar ecx, 8
mov byte [ebx - 4], cl
mov dl, byte [ebp - 4]
sub dl, byte [esi + 0x18]
mov ecx, dword [ebp - 0x5c]
inc dl
mov byte [ebx - 3], dl
mov word [ebx - 2], 0
mov edi, dword [ebp - 4]
inc edi
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
cmp al, 0x3d
je 0x44ede1
cmp al, 0x3e
je 0x44edd0
cmp al, 0x3c
je 0x44eca8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x29
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x14], 1
mov edx, 0x29
jmp 0x44f565
mov dword [ebp - 0x14], 0
mov edx, 0x29
jmp 0x44f565
mov dword [ebp - 0x18], 0x27
mov edx, dword [esi + 0xc]
inc edi
mov dword [ebp - 4], edi
movzx eax, byte [edi]
test byte [eax + edx], 0x10
mov ecx, edi
mov dword [ebp - 0x20], ecx
je 0x44ee24
mov eax, edx
lea esp, [esp]
inc edi
mov dword [ebp - 4], edi
movzx edx, byte [edi]
test byte [edx + eax], 0x10
jne 0x44ee17
mov eax, edi
sub eax, ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x28], ecx
je 0x44ee7a
movzx ecx, byte [edi]
cmp ecx, dword [ebp - 0x18]
jne 0x44fb99
cmp dword [esi + 0x2c], 0x2710
jge 0x44fbb0
lea ecx, [eax + 3]
cmp ecx, dword [esi + 0x30]
jle 0x44ef99
mov dword [esi + 0x30], ecx
cmp eax, 0x20
jle 0x44ef99
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x30
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x28]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x2c], ecx
jle 0x44ef23
mov edi, edx
lea ebx, [ebx]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
push eax
lea ecx, [edi + 2]
push ecx
push edx
call fcn.00411b83
add esp, 0xc
test eax, eax
jne 0x44eee5
mov eax, dword [ebp - 0x1c]
cmp byte [edi + eax + 2], 0
jne 0x44ef01
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
shl eax, 8
or edx, eax
mov eax, dword [esi + 0x34]
mov ecx, 1
add eax, ecx
cmp edx, eax
je 0x44eee0
test dword [ebp - 0x2c], 0x80000
je 0x44fbc7
mov dword [ebp - 0x28], ecx
jmp 0x44eeec
js 0x44ef01
mov ecx, 1
mov eax, dword [ebp - 0x10]
add edi, dword [esi + 0x30]
add eax, ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x2c]
jl 0x44ee97
jmp 0x44ef1a
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
sub ecx, dword [ebp - 0x10]
imul ecx, eax
push ecx
push edi
add edi, eax
push edi
call fcn.00416790
add esp, 0xc
cmp dword [ebp - 0x28], 0
jne 0x44ef66
mov edi, dword [ebp - 4]
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x2c], ecx
jle 0x44ef66
lea esp, [esp]
cmp eax, dword [ebp - 0x14]
je 0x44ef59
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
or edx, ecx
mov ecx, dword [esi + 0x34]
inc ecx
cmp edx, ecx
je 0x44fbe1
mov ecx, dword [ebp - 0x10]
jmp 0x44ef5a
dec ecx
add eax, dword [esi + 0x30]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [esi + 0x2c]
jl 0x44ef37
mov edx, dword [esi + 0x34]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
inc edx
sar edx, 8
mov byte [edi], dl
mov al, byte [esi + 0x34]
mov edx, dword [ebp - 0x20]
inc al
push ecx
mov byte [edi + 1], al
push edx
lea eax, [edi + 2]
push eax
call fcn.00411000
mov ecx, dword [ebp - 0x1c]
mov byte [edi + ecx + 2], 0
mov edi, dword [ebp - 4]
add esp, 0xc
inc dword [esi + 0x2c]
inc edi
mov dword [ebp - 4], edi
inc dword [esi + 0x34]
mov edx, dword [esi + 0x34]
mov ecx, dword [ebp - 0xc]
sar edx, 8
mov byte [ebx + 3], dl
mov al, byte [esi + 0x34]
mov byte [ebx + 4], al
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov edx, 0x29
mov dword [ebp - 0x14], 1
jmp 0x44f565
inc edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x18], 0x29
jmp 0x44f18e
test dword [ebp - 0x2c], 0x1000
je 0x44efa0
mov dword [ebp - 0xc], 0x5e
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ebx
jmp 0x44ecd0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [esi + 0x34]
mov eax, dword [ebp + 0x14]
push 0
push ecx
push edx
push eax
lea ecx, [ebp - 4]
push ecx
mov dword [ebp - 0x98], edi
call fcn.0042fe8e
mov edx, dword [ebp + 0x14]
add esp, 0x14
cmp dword [edx], 0
jne 0x44e8fa
test eax, eax
jns 0x44f853
mov ecx, eax
neg ecx
cmp ecx, 0x1a
jne 0x44f06c
mov edi, dword [ebp - 4]
cmp byte [edi + 1], 0x5c
jne 0x44f05a
cmp byte [edi + 2], 0x45
jne 0x44f05a
mov ecx, dword [ebp - 0x5c]
add edi, 2
inc edi
xor edx, edx
jmp 0x44cb75
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x54], 1
xor edx, edx
jmp 0x44cb75
cmp ecx, 0x19
je 0x44f8d4
mov edx, dword [ebp - 0x38]
cmp edx, 0xfffffffe
jne 0x44f08d
cmp ecx, 5
jle 0x44f08d
cmp ecx, 0x17
jge 0x44f08d
or edx, 0xffffffff
mov dword [ebp - 0x38], edx
mov edi, dword [ebp - 4]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x60], edx
cmp ecx, 0x1b
jne 0x44f520
mov eax, dword [esi + 0x24]
inc edi
xor edx, edx
mov dword [ebp - 4], edi
cmp byte [edi], 0x3c
mov cl, byte [edi + 1]
setne dl
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], eax
lea eax, [edi + 1]
dec edx
and edx, 0x17
add edx, 0x27
mov dword [ebp - 0x18], edx
cmp cl, 0x2b
je 0x44f146
cmp cl, 0x2d
je 0x44f146
mov ecx, eax
mov dword [ebp - 0xc], ecx
mov cl, byte [ecx]
mov dword [ebp - 0x1c], 1
test cl, cl
je 0x44f116
movzx ecx, cl
cmp ecx, edx
je 0x44f116
mov edx, dword [esi + 0xc]
mov cl, byte [ecx + edx]
test cl, 4
jne 0x44f101
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x18]
test cl, 0x10
je 0x44f116
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
mov cl, byte [ecx]
test cl, cl
jne 0x44f0e8
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
cmp ecx, edx
je 0x44f134
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x5c]
mov dword [edx], 0x39
inc edi
xor edx, edx
jmp 0x44cb75
cmp dword [ebp - 0x1c], 0
jne 0x44f189
mov dword [ebp - 0x14], 1
jmp 0x44f565
lea ecx, [edi + 2]
mov dword [ebp - 0xc], ecx
movzx ecx, byte [ecx]
test byte [ecx + 0x486b28], 4
je 0x44f16b
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
movzx ecx, byte [ecx]
test byte [ecx + 0x486b28], 4
jne 0x44f158
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
cmp ecx, edx
je 0x44f189
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x5c]
mov dword [edx], 0x39
inc edi
xor edx, edx
jmp 0x44cb75
mov edi, eax
mov dword [ebp - 4], edi
mov al, byte [edi]
movzx edx, al
cmp edx, 0x2b
jne 0x44f1c3
inc edi
mov dword [ebp - 4], edi
movzx eax, byte [edi]
test byte [eax + 0x486b28], 4
jne 0x44f490
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x3f
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 0x2d
jne 0x44f490
movzx ecx, byte [edi + 1]
test byte [ecx + 0x486b28], 4
jne 0x44f48c
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x28], edx
lea ecx, [ebp - 0x28]
cmp al, 0x29
je 0x44f24a
cmp al, 0x3a
je 0x44f247
movzx eax, al
inc edi
sub eax, 0x2d
mov dword [ebp - 4], edi
cmp eax, 0x4b
ja case.0x44f20a.46
movzx edx, byte [eax + 0x44ff1f]
jmp dword [edx*4 + 0x44fefb]
lea ecx, [ebp - 0xc]
jmp 0x44f241
or dword [ecx], 0x80000
or dword [esi + 0x48], 0x10
jmp 0x44f241
or dword [ecx], 1
jmp 0x44f241
or dword [ecx], 2
jmp 0x44f241
or dword [ecx], 4
jmp 0x44f241
or dword [ecx], 8
jmp 0x44f241
or dword [ecx], 0x200
jmp 0x44f241
or dword [ecx], 0x40
mov al, byte [edi]
cmp al, 0x29
jne 0x44f1ec
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
or edx, ecx
not eax
and eax, edx
cmp byte [edi], 0x29
mov dword [ebp - 0x50], eax
jne case.0x44e92f.58
mov edx, dword [esi + 0x14]
add edx, 3
cmp ebx, edx
jne 0x44f295
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x44f278
cmp dword [edx], 6
jne 0x44f295
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x5c]
mov dword [esi + 0x44], eax
mov dword [edx], eax
inc edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov edx, eax
xor edx, ecx
test dl, 7
je 0x44f2af
mov cl, al
mov byte [ebx], 0x19
and cl, 7
mov byte [ebx + 1], cl
mov edi, dword [ebp - 4]
add ebx, 2
mov edx, dword [ebp + 8]
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [ebp - 0xb4], ecx
xor ecx, 1
mov dword [ebp - 0xb8], ecx
movsx ecx, al
and ecx, 1
shl ecx, 8
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [edx], eax
inc edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0
xor edx, edx
jmp 0x44cb75
mov ecx, 1
push eax
mov eax, dword [ebp + 0x20]
push esi
push eax
lea edx, [ebp - 0x6c]
push edx
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x34]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp - 0x2c]
lea edx, [ebp - 4]
push edx
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 0x3c]
push eax
and ecx, 7
push ecx
push edx
call fcn.004543b1
add esp, 0x34
test eax, eax
je 0x44e8fa
mov ecx, dword [ebp - 0xc]
cmp ecx, 0x60
jne 0x44f373
xor edx, edx
cmp dword [ebp + 0x28], edx
jne 0x44f373
mov eax, ebx
mov dword [ebp - 0x14], edx
nop
movzx edx, byte [eax + 1]
movzx edi, byte [eax + 2]
inc dword [ebp - 0x14]
shl edx, 8
or edx, edi
add eax, edx
cmp byte [eax], 0x55
jne 0x44f347
cmp byte [ebx + 3], 0x68
jne 0x44f3d1
cmp dword [ebp - 0x14], 1
jg 0x44fc10
mov ecx, 0x68
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 4]
cmp byte [edi], 0x29
jne 0x44fc44
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x44f3f0
mov eax, dword [edx]
mov edx, dword [ebp - 0x64]
mov ecx, 0x7fffffeb
sub ecx, eax
add edx, 0xfffffffa
cmp ecx, edx
jl 0x44f8f9
mov ecx, dword [ebp - 0x64]
lea edx, [eax + ecx - 6]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x5c]
mov dword [eax], edx
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
mov edi, dword [ebp - 4]
add ebx, 6
inc edi
xor edx, edx
jmp 0x44cb75
mov eax, dword [ebp - 0x14]
cmp eax, 2
jg 0x44fc2a
cmp eax, 1
jne 0x44f373
or eax, 0xffffffff
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0xa0], eax
jmp 0x44f379
mov ebx, dword [ebp - 0x3c]
cmp ecx, 0x68
je 0x44f8d7
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x9c], 0
cmp ecx, 0x5d
jl 0x44f46a
cmp edx, 0xfffffffe
jne 0x44f440
test eax, eax
js 0x44f435
mov dword [ebp - 0x38], eax
or eax, 0xffffffff
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x48], eax
jmp 0x44f451
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
jmp 0x44f451
test eax, eax
js 0x44f451
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
jns 0x44f45c
or eax, dword [ebp - 0x70]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
js 0x44f8d7
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x5c]
inc edi
xor edx, edx
jmp 0x44cb75
cmp ecx, 0x58
jne 0x44f8d7
mov eax, dword [ebp - 0x6c]
test eax, eax
js 0x44f8d7
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x44], eax
xor edx, edx
jmp 0x44cb75
inc edi
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
xor eax, eax
test byte [ecx + 0x486b28], 4
mov dword [ebp - 8], eax
je 0x44f4c1
lea ebx, [ebx]
inc edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
test byte [ecx + 0x486b28], 4
jne 0x44f4a7
mov dword [ebp - 8], eax
movzx ecx, byte [edi]
cmp ecx, dword [ebp - 0x18]
jne 0x44fc5b
cmp edx, 0x2d
jne 0x44f504
test eax, eax
je 0x44fc72
mov edx, dword [esi + 0x34]
sub edx, eax
lea eax, [edx + 1]
mov dword [ebp - 8], eax
test eax, eax
jg 0x44f683
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 0x2b
jne 0x44f683
test eax, eax
je 0x44fad1
add eax, dword [esi + 0x34]
mov dword [ebp - 8], eax
jmp 0x44f683
cmp ecx, 0x1c
jne 0x44f784
mov dl, byte [edi + 1]
cmp dl, 0x3c
je 0x44f53f
cmp dl, 0x27
je 0x44f53f
cmp dl, 0x7b
jne 0x44f784
inc edi
mov dword [ebp - 4], edi
mov al, byte [edi]
mov dword [ebp - 0x14], 0
cmp al, 0x3c
jne 0x44f557
mov edx, 0x3e
jmp 0x44f565
xor edx, edx
cmp al, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
mov ecx, dword [esi + 0xc]
inc edi
mov dword [ebp - 4], edi
movzx eax, byte [edi]
test byte [eax + ecx], 0x10
mov dword [ebp - 0x20], edi
je 0x44f587
mov eax, ecx
inc edi
mov dword [ebp - 4], edi
movzx ecx, byte [edi]
test byte [ecx + eax], 0x10
jne 0x44f57a
mov eax, edi
sub eax, dword [ebp - 0x20]
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x28], ecx
je 0x44f5f6
cmp eax, ecx
je 0x44fc89
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x44fca0
cmp eax, 0x20
jg 0x44ee63
mov edx, dword [esi + 0x1c]
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x28], eax
push ecx
setne al
mov dword [ebp - 0x70], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi + 0x1c], edi
push eax
mov eax, dword [ebp - 0x20]
push edx
push eax
push esi
call fcn.0043ff8f
mov ecx, dword [ebp - 0x70]
add esp, 0x14
mov dword [ebp - 8], eax
mov dword [esi + 0x1c], ecx
test eax, eax
jns 0x44f679
mov dword [ebp - 8], 0
jmp 0x44f679
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x2c], ecx
jle 0x44f637
lea ebx, [ebx]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
push edx
lea eax, [edi + 2]
push eax
push ecx
call fcn.00416af1
add esp, 0xc
test eax, eax
jne 0x44f628
mov edx, dword [ebp - 0x1c]
cmp byte [edi + edx + 2], al
je 0x44f637
mov eax, dword [ebp - 0x10]
add edi, dword [esi + 0x30]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x2c]
jl 0x44f607
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 0x2c]
jge 0x44f650
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or eax, ecx
mov dword [ebp - 8], eax
jmp 0x44f679
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x28], eax
push edx
setne al
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ecx
push esi
call fcn.0043ff8f
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jle 0x44fcb7
cmp dword [ebp - 0x14], 0
je 0x44f797
cmp dword [ebp + 0x28], 0
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
jne 0x44f73a
cmp dword [ebp - 8], 0
mov byte [ebx], 0
je 0x44f6b6
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [esi + 0x14]
push edx
push eax
push ecx
call fcn.0042f43d
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x44f70a
cmp dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x24]
setne al
push edx
push eax
mov eax, dword [ebp - 8]
push eax
push 0
push esi
call fcn.0043ff8f
add esp, 0x14
test eax, eax
js 0x44faff
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 8]
lea edx, [eax + ecx]
mov ecx, ebx
sub ecx, eax
add ecx, 4
sar ecx, 8
mov dword [ebp - 0xc], edx
mov edx, dword [esi + 0x24]
mov byte [edx], cl
mov ecx, dword [esi + 0x24]
mov al, bl
sub al, byte [esi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [esi + 0x24], 2
jmp 0x44f737
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
jne 0x44f73a
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0xc]
push esi
push edx
push eax
push ebx
push ecx
call fcn.00446d5f
add esp, 0x14
test eax, eax
jne 0x44fcd1
mov eax, dword [ebp - 0xc]
mov dword [ebx], 0x5206005d
mov edx, eax
sub edx, dword [esi + 0x14]
add ebx, 9
sar edx, 8
mov byte [ebx - 5], dl
sub al, byte [esi + 0x14]
cmp dword [ebp - 0x38], 0xfffffffe
mov byte [ebx - 4], al
mov word [ebx - 3], 0x55
mov byte [ebx - 1], 6
mov edi, dword [ebp - 4]
mov dword [ebp - 0x64], 9
jne 0x44f8d7
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x38], 0xffffffff
xor edx, edx
jmp 0x44cb75
cmp ecx, 0x23
jl 0x44f811
mov ecx, 0xffffffdd
sub ecx, eax
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x38], 0xfffffffe
jne 0x44f7a4
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 8]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x51
mov byte [ebx + 1], al
mov dword [ebp - 0x10], ebx
mov byte [ebx + 2], cl
add ebx, 3
mov eax, 1
cmp ecx, 0x20
jge 0x44f7c7
shl eax, cl
or dword [esi + 0x40], eax
cmp ecx, dword [esi + 0x3c]
jle 0x44f7d2
mov dword [esi + 0x3c], ecx
mov eax, dword [esi + 0x20]
test eax, eax
je 0x44f8d4
movzx ecx, word [eax + 4]
cmp ecx, dword [ebp - 8]
je 0x44f7fa
mov eax, dword [eax]
test eax, eax
jne 0x44f7dd
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
inc edi
xor edx, edx
jmp 0x44cb75
mov ecx, dword [ebp - 0x5c]
mov edx, 1
mov word [eax + 6], dx
mov edi, dword [ebp - 4]
inc edi
xor edx, edx
jmp 0x44cb75
cmp ecx, 0x16
je 0x44fceb
cmp ecx, 0xf
je 0x44fceb
cmp ecx, 0x10
je 0x44fceb
cmp ecx, 5
jle 0x44f839
mov dword [ebp - 0x10], ebx
cmp ecx, 0x17
jl 0x44f840
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x5c]
neg al
mov byte [ebx], al
mov edi, dword [ebp - 4]
inc ebx
inc edi
xor edx, edx
jmp 0x44cb75
cmp dword [ebp - 0x24], 0
je 0x44f878
cmp eax, 0x7f
jle 0x44f878
lea ecx, [ebp - 0xac]
push ecx
push eax
call fcn.0042edc9
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, eax
jmp 0x44ccf5
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0xac], al
jmp 0x44ccf5
movzx eax, dl
or eax, dword [ebp - 0x68]
mov dword [ebp - 0x38], eax
cmp ecx, 1
je 0x44f8d4
movzx eax, byte [ebx - 1]
or eax, dword [esi + 0x4c]
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x44], eax
xor edx, edx
jmp 0x44cb75
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x60], edx
cmp ecx, 1
je 0x44f8c7
cmp dword [ebp - 0x68], 0
jne 0x44f8d4
movzx eax, byte [ebx - 1]
or eax, dword [esi + 0x4c]
or eax, dword [ebp - 0x68]
mov dword [ebp - 0x44], eax
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
inc edi
xor edx, edx
jmp 0x44cb75
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x34
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x34
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
mov dword [ecx], ebx
mov ecx, dword [ebp + 0x28]
mov dword [edx], eax
mov edx, dword [ebp + 0x10]
mov dword [edx], edi
test ecx, ecx
je 0x44fd09
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x74]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jge 0x44fd02
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x14
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
xor eax, eax
cmp byte [edi + 1], 0x3a
mov dword [ecx], edi
setne al
pop edi
pop esi
pop ebx
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [edx], eax
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x1f
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp - 4]
mov dword [ecx], 0x1e
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 7
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 8
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 6
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 9
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x37
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x14
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x42
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x3b
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x1c
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
dec edi
mov dword [ecx], 0x1a
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x3a
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0xf
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp - 4]
mov dword [ecx], 0xf
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0xf
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp - 4]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
inc edi
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x18
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x27
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x26
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x2a
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x31
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x2b
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x41
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
dec edi
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0xc
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp - 4]
mov dword [ecx], 0x36
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x1b
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0xe
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x1d
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x3a
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x3e
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x2a
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0xf
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [edx], 0x28
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ecx], edi
pop edi
pop esi
mov dword [eax], 0x2d
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
sub eax, dword [ebp - 0x74]
add eax, ebx
mov dword [ecx], eax
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret